我有这段代码应该可以正常工作
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Auswertung")
...
ws.Range(Cells(2, 2), Cells(lastRow, lastCol)).NumberFormat = "0"
Run Code Online (Sandbox Code Playgroud)
但是,如果未选择工作表,则会失败。错误 1004,Methode Range 对于对象失败。
如果我把它改成
ws.Select
ws.Range(Cells(2, 2), Cells(lastRow, lastCol)).NumberFormat = "0"
Run Code Online (Sandbox Code Playgroud)
有用。
为什么?在VBA中我想避免select.
您也需要符合资格Cells...该Cells参考文献不会自动假定它引用的工作表与您ws.Range所期望的相同。它使用的假设ActiveSheet与您的对象不同Range。
选项1:
ws.Range(ws.Cells(2, 2), ws.Cells(lastRow, lastCol)).NumberFormat = "0"
Run Code Online (Sandbox Code Playgroud)
选项2:
With ws
.Range(.Cells(2, 2), .Cells(lastRow, lastCol)).NumberFormat = "0"
End With
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
290 次 |
| 最近记录: |