在大范围内replaceExcel数值单元格值

我试图打开一个Excel文件,并用“x”replace数值的所有单元格。

在这里输入链接描述

也就是说,不同星期的model_abc的1..9应该用“x”来replace,与model_123的11,14,17等一样。空的单元格应该是单独的。

请注意,有隐藏的行和列,我也想执行此replace。

我写了下面的内容,似乎有效,但需要10分钟以上才能完成整个表格。 XFD200的结束范围是任意挑选的,以便进行扩展 – 每周将增加一列,并在将来添加一些行。

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