我希望从我指定的列中清除所有#N / A(非公式):
Sub ClearNA()
With Worksheets("database")
Set rng1 = Range( _
Range("A1:FR1").Find("columnname").Offset(1), _
Range("A1:FR1").Find("columnname").Offset(1).End(xlDown))
Cells.Replace "#N/A", "", rng1
End With
End Sub
我想用空白替换它们。我在线上遇到类型不匹配
Cells.Replace "#N/A", "", rng1
更新:
Sub DeleteStringFromColumn(SearchString As String, _
ColumnNameOrNumber As Variant, _
MySheet As Worksheet, _
Optional ReplaceWith = vbNullString)
With MySheet
.Range(.Cells(1, ColumnNameOrNumber), .Cells(1048576, ColumnNameOrNumber)).Replace SearchString, vbNullString
End With
End Sub
Sub clearNA()
'DeleteStringFromColumn "#N/A", 1, ThisWorkbook.Sheets(1) 'ColumnNumber
DeleteStringFromColumn "#N/A", "ProductType", ThisWorkbook.Sheets("database") 'ColumnName
End Sub
我将这个问题包装成一个小子程序。请参阅示例sub以了解用法。
Sub DeleteStringFromColumn(SearchString As String, _
ColumnNameOrNumber As Variant, _
MySheet As Worksheet, _
Optional ReplaceWith = vbNullString)
With MySheet
.Range(.Cells(1, ColumnNameOrNumber), .Cells(1048576, ColumnNameOrNumber)).Replace SearchString, vbNullString
End With
End Sub
Sub Example()
DeleteStringFromColumn "#N/A", 1, ThisWorkbook.Sheets(1) 'ColumnNumber
DeleteStringFromColumn "#N/A", "B", ThisWorkbook.Sheets(1) 'ColumnName
DeleteStringFromColumn "#N/A", ThisWorkbook.Names("ProductType").RefersToRange.Column, ThisWorkbook.Sheets(1) 'Getting Column Number from Named Range
End Sub