好的,我知道这是一个相当普遍的问题,但是我已经完成了研究,但找不到答案。
我从网上复制了一张表格并粘贴到Excel工作表中。
然后我继续编写一个宏来处理工作表。
其中一列数字无效。我发现它在数字的前面和后面都包含空格,因此=sum
函数无法在其上使用。
所以我写了一个简单的宏来删除空格。
Sub findandreplacespaces()
Dim i As Integer
Dim k As Integer
Dim j As Integer
Dim firstrow As Integer
Dim lastrow As Integer
Dim firstcol As Integer
For i = 1 To 8 'I've got 8 sheets to process
Worksheets(i).Activate
lastrow = Cells(Rows.Count, 1).End(xlUp).Row 'define lastrow
Range(Cells(1, 1), Cells(lastrow, 1)).Select
With Selection
firstrow = .Find(what:="January").Row 'define firstrow
End With
lastcol = Cells(1, Columns.Count).End(xlToLeft).Column 'define lastcolumn
Range(Cells(firstrow, 2), Cells(lastrow, lastcol)).Select
Selection.ClearFormats 'clear all the formating
For j = 2 To lastcol
For k = firstrow To lastrow
Cells(k, j).Select 'select the cell(1,1)
With Selection
.Replace what:=" ", replacement:="", lookat:=xlPart
End With
Next k
Next j
Next i
End Sub
我还尝试使用worksheetfunction.TRIM
(选择),但不起作用。
我用过selection.numberformat=general /text/ number
,不是。
尽管有一个提示,但不起作用的数字都与单元格的左侧对齐。
我怀疑单元格已锁定,因此我将它们解锁,但宏仍然无法正常工作。
关于如何处理此问题的任何建议?
谢谢大家。
答案 0 :(得分:4)
尝试一下:
x_pred[0]
工作表修剪功能会获得前导和结尾以及额外的内部字符串空间(vba修剪仅会获得前导/结尾)。清除会清除大多数不可打印的字符。在chr(160)上进行替换将删除一种“幻像”空间。