Vba 在大范围内替换Excel数值单元格值
我正试图打开一个excel文件,并用“x”替换所有数值单元格 也就是说,在不同的周内,模型_abc的1..9应替换为“x”,与模型_123的11、14、17等相同。空单元格应单独保留 请注意,有隐藏的行和列,我也希望执行此替换 我写了下面这篇文章,看起来很有效,但是花了超过10分钟的时间看完整张纸。XFD200结束范围是任意选择的,以允许扩展——每周将添加一列,将来可能会添加一些行Vba 在大范围内替换Excel数值单元格值,vba,excel,Vba,Excel,我正试图打开一个excel文件,并用“x”替换所有数值单元格 也就是说,在不同的周内,模型_abc的1..9应替换为“x”,与模型_123的11、14、17等相同。空单元格应单独保留 请注意,有隐藏的行和列,我也希望执行此替换 我写了下面这篇文章,看起来很有效,但是花了超过10分钟的时间看完整张纸。XFD200结束范围是任意选择的,以允许扩展——每周将添加一列,将来可能会添加一些行 Sub RemoveCellValues(excel_filename As String) Dim
Sub RemoveCellValues(excel_filename As String)
Dim xlApp As Excel.Application
Dim excelWkBk As Excel.Workbook
Set xlApp = Application.CreateObject("Excel.Application")
With xlApp
.Visible = True
Set excelWkBk = xlApp.Workbooks.Open(excel_filename)
With excelWkBk
Dim rng As Range
Dim r As Range
Set rng = .Worksheets(1).Range("A3:XFD200")
For Each r In rng
If Not IsEmpty(r.Value) Then
If IsNumeric(r.Value) Then
Debug.Print "Cell value " & r.Value & " " & r.Row & " " & r.Column
r.Value = "x"
End If
End If
Next r
.Save
.Close
End With
End With
'' quit excel application
xlApp.Quit
End Sub
正如您可能知道的,这是我第一次尝试VBA和Excel。有更好的方法吗?在保持灵活性以跟上未来扩张的同时,是否可以加快速度
谢谢 如果数值是类型化数据,而不是公式的结果,则不需要循环:
Sub TheXFactor()
Dim r As Range
Set r = Range("A3:XFD200").Cells.SpecialCells(xlCellTypeConstants, xlNumbers)
r.Value = "x"
End Sub
谢谢你的回复。看起来带“Total”的列和行是公式。您的建议导致我出现此错误:
无法获取Range类的SpecialCells属性
。这是因为公式吗?我在复制你的代码时出错了。它现在可以工作了,而且速度非常快。谢谢