在我的宏开始时,我调用此宏将所有逗号更改为点。
Sub commaToDot()
ActiveWorkbook.Sheets("Oficial").Activate
Columns("B:B").Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
正如我在数据中看到的那样,它有效。它将所有逗号替换为B列中的点。
稍后在我的代码中,我将一些值(具有COMMAS并且现在具有DOTS)复制到其他单元格,但值显示为COMMAS。
为什么呢?我在想有一些内存不端行为,但我不知道如何解决它。有什么建议吗?
答案 0 :(得分:1)
我的猜测这是一个国际格式问题。例如,如果您的Windows区域设置是葡萄牙语,或者使用逗号作为小数的其他语言,那么您的问题可能与您的VBA例程有关,导致目标单元格将“点号”解释为数字而不是文本字符串。
要强制Excel将“粘贴”值解释为字符串,可能最简单的方法是在要使用单引号标记复制的值之前。这将显示在公式栏中,但不会显示在单元格或任何打印输出中。您也可以将单元格预格式化为文本,但这可能并不理想。
答案 1 :(得分:0)
问题可能在于您的列具有不同的格式。确保列的格式正确。
要强制列的内容为数字而不是文本,请尝试以下操作(如果更改列格式不会立即产生所需的效果):
lastRow = Cells(rows.count, 1).end(xlup).row
For x = 1 to lastRow
cells(x,1) = cells(x,1) + 0 'or you could do cells(x,1) = cells(x,1) / 1
Next
这将循环遍历第1列的所有单元格并强制它们为数字。