我正在编写一个代码来重置工作表上的单元格。很好,然后它突然停止工作。这是重置代码。
Private Sub Reset_Click()
Range(Cells(20, 2), Cells(41, 13)).Interior.Color = RGB(217, 217, 217)
Range(Cells(20, 2), Cells(41, 13)).Font.Color = RGB(255, 255, 255)
Range(Cells(3, 2), Cells(11, 13)).Interior.Color = RGB(255, 255, 255)
Range(Cells(13, 2), Cells(18, 13)).Interior.Color = RGB(255, 255, 255)
End Sub
提前致谢
答案 0 :(得分:0)
以下是调整后的代码(应该可以使用):
Option Explicit
Private Sub Reset_Click()
Dim ws As Worksheet
' Change in the following line the name of the sheet (if necessary)
Set ws = ThisWorkbook.Worksheets("Sheet1")
ws.Range(ws.Cells(20, 2), ws.Cells(41, 13)).Interior.Color = RGB(217, 217, 217)
ws.Range(ws.Cells(20, 2), ws.Cells(41, 13)).Font.Color = RGB(255, 255, 255)
ws.Range(ws.Cells(3, 2), ws.Cells(11, 13)).Interior.Color = RGB(255, 255, 255)
ws.Range(ws.Cells(13, 2), ws.Cells(18, 13)).Interior.Color = RGB(255, 255, 255)
End Sub
基本上,您应该使用适用的Range
和Cells
限定所有workbook
和worksheet
。否则,您将其留给VBA猜测要使用哪个Excel文件以及文件中的哪个工作表应该更改。
因为这是上述评论的社区努力,我将这个答案作为社区维基的答案。
答案 1 :(得分:0)
你有多少张?如果您不弄清楚范围的位置,您将收到错误消息。 尝试类似:
Sheets("NameOfTheSheetWhereTheRangeIsLocated").Range(Cells(20, 2), Cells(41, 13)).Interior.Color = RGB(217, 217, 217)
答案 2 :(得分:-1)
在一个模块中编写代码而不是在工作表模块中编写相同的代码总是安全的。在excel的限制中会出现这种错误。