我正在编写一个makro,在加载到数据库之前将所有非数字单元格格式化为文本。我有一条线,我不知道有什么问题。我的VBA技能很差。我得到运行时错误'424'。
Sub formatAllCellsAsText()
Dim wsTemp As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range
For sht = 3 To Worksheets.Count
Set wsTemp = Sheets(sht)
Set StartCell = Range("A4")
LastRow = wsTemp.Range("A1").CurrentRegion.Rows.Count
LastColumn = wsTemp.Range("A1").CurrentRegion.Columns.Count
For Each Cell In wsTemp.Range(StartCell, wsTemp.Cells(LastRow, LastColumn)).Cells
If Not IsEmpty(Cell.Value) And IsNumeric(Cell.Value) And InStr(wsTemp.Cells(1, Cell.Column), "Client ID") <= 0 Then
Dim Temp As Double
Temp = Cell.Value
Cell.ClearContents
Cell.NumberFormat = "@"
Cell.Value = CStr(Temp)
End If
Next
Next sht
End Sub
答案 0 :(得分:1)
Set StartCell = Range("A4")
应该是
Set StartCell = wsTemp.Range("A4")
答案 1 :(得分:0)
只是想总结一下,因为我可能已经找到了这个问题。 在我发布的第一个代码中,我没有设置我后来提到的Cell变量。我认为Cell对于VBA来说是不言自明的。