运行时错误'1004':重置单元格时出错

时间:2016-10-04 14:02:49

标签: excel vba excel-vba

我正在编写一个代码来重置工作表上的单元格。很好,然后它突然停止工作。这是重置代码。

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

提前致谢

3 个答案:

答案 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

基本上,您应该使用适用的RangeCells限定所有workbookworksheet。否则,您将其留给VBA猜测要使用哪个Excel文件以及文件中的哪个工作表应该更改。

因为这是上述评论的社区努力,我将这个答案作为社区维基的答案。

答案 1 :(得分:0)

你有多少张?如果您不弄清楚范围的位置,您将收到错误消息。 尝试类似:

   Sheets("NameOfTheSheetWhereTheRangeIsLocated").Range(Cells(20, 2), Cells(41, 13)).Interior.Color = RGB(217, 217, 217)

答案 2 :(得分:-1)

在一个模块中编写代码而不是在工作表模块中编写相同的代码总是安全的。在excel的限制中会出现这种错误。