VBA – 单元格颜色

这段代码有什么问题? 我得到一个“ARG!” 错误

Public Function nr_kolor(kom As Range) For Each komorka In kom wartosc = komorka.Font.Color wiersz = komorka.Row kolumna = komorka.Column + 3 nr_kolor = wartosc Next komorka activesheet.Cells(wiersz, kolumna).Select Selection.Interior.Color = wartosc End Function 

有很多事情你做错了。

  • 你没有声明你的variables。
  • 你需要使用Sub()而不是Function()。 通常,函数不允许以任何方式改变工作表,只是操纵和返回值。
  • 您的循环出现错误 – 如果您希望对多个单元执行操作,而不是将所有指令都放在循环中。 现在它只能为1个单元格(你的范围中最后一个单元格右边的3列)着色。
  • 函数结束之前,您正在返回函数。

我认为你想要做的(没有解释)是采取一系列的单元格,并应用相同的内部颜色的三列的细胞。 这是一个更有效的方法来做到这一点。 我故意保持逻辑简单。

 Sub ColorCells() Dim cell As Range For Each cell In Range("A1:A10") cell.Offset(, 3).Interior.Color = cell.Interior.Color Next End Sub 

它是如何工作的 :你创build一个可变单元格作为范围,这将代表你提供的范围内的每个单元格。 对于范围中的每个单元格,要将相同的内部颜色应用于OFFSET 3列右侧的单元格。