【问题标题】:Changing formatting of a cell in a different worksheet更改不同工作表中单元格的格式
【发布时间】:2015-01-25 22:11:05
【问题描述】:

第一次提问,如果没有达到应有的详细程度,敬请见谅。到目前为止,你们帮助我完成了我的第一个 VBA 脚本,但我还没有找到解决这个问题的方法。所以就在这里!

我正在尝试在工作表 1 上编写一个按钮,当我点击它时可以更改工作表 2 上特定单元格的格式。我正在尝试的具体代码如下:

If Cells(i, 6).Value <> "" And Cells(i, 5).Value <> "" Then
    Worksheets("Info").Range("F5").Interior.Color = RGB(255, 0, 0)
End If

这个 if 语句位于 i 是计数器的 For 循环中。我收到错误 1004,据我所知,它不允许我在另一张表中选择任何内容。当我删除“Worksheets("Info") 位时,代码在工作表 1 中工作正常,所以我 90% 确定它与尝试修改不同工作表中的单元格有关。

有什么想法吗?

【问题讨论】:

  • 您需要完全限定If Cells(i, 6).Value &lt;&gt; "" And Cells(i, 5).Value &lt;&gt; "" Then 中的单元格,就像您对.Range("F5") 所做的那样,类似于If Worksheets("Sheet1").Cells(i, 6).Value &lt;&gt; "" And Worksheets("Sheet1").Cells(i, 5).Value &lt;&gt; "" Then
  • 同时检查i的值是否是一个有效的行号
  • 我按照您的建议修改了代码,但仍然无法正常工作。它对 Worksheets("Info") 抛出相同的异常。 i 始终是一个有效数字,并且不会在该行引发任何错误。第二行代码有问题,其中 Worksheets("Info") 存在。它抛出 1004 错误。
  • 您的Worksheets("Info") 似乎受到保护?
  • 这正是问题所在!你是英雄!

标签: vba excel colors formatting


【解决方案1】:

如果您想处理多张工作表,您需要确定要在其上运行命令的工作表:

With Worksheets("YourFirstSheetName")
    If .Cells(i, 6).Value <> "" And .Cells(i, 5).Value <> "" Then
        Worksheets("Info").Range("F5").Interior.Color = RGB(255, 0, 0)
    End If
End With

注意“单元格”之前的点。它们意味着命令 (Cells...) 将在名为“YourFirstSheetName”的工作表上执行。相反,另一个命令将在名为“Info”的工作表上执行

【讨论】:

    猜你喜欢
    • 2022-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多