excel - 使用公共(public) VBA 函数更改 Excel 中的单元格颜色背景 - 不是 VBA 程序员

标签 excel vba excel-formula background-color

我想根据另一个单元格中的值更改单元格的填充颜色。这将是一个系列实现,例如A1,基于 B1 中的值; A2,基于 B2 中的值等等。

我想使用一个公共(public)函数,所以我可以这样使用它并下拉进行系列实现。
IF(B1>0,ColourCell("A1","Green"),IF(B1<0,ColourCell("A1","Red",ColourCell("A1","White"))))
我不知道 VB 中的数据类型等 - 我可以帮助它在 VB 中工作吗?
我插入了一个模块(常规)。这就是功能。

Public Function ColourCell(cell, colour)

If colour = "Green" Then

    Range("cell").Interior.Color = vbGreen

ElseIf colour = "Red" Then

    Range("cell").Interior.Color = vbRed

ElseIf colour = "White" Then

    Range("cell").Interior.Color = vbWhite

End If

End Function

我的理解是,一旦一切正常,我就可以按照描述的方式使用它。

谢谢

最佳答案

为了规避 BigBen 这里提到的问题是另一种方法。

您需要删除 cell 周围的引号。否则它将被视为文字字符串。

在函数中声明参数类型也是一种很好的做法。

这里没有错误捕获,例如对于无效范围。

Sub ColourCell(cell As String, colour As String)

If colour = "Green" Then
    Range(cell).Interior.Color = vbGreen
ElseIf colour = "Red" Then
    Range(cell).Interior.Color = vbRed
ElseIf colour = "White" Then
    Range(cell).Interior.Color = vbWhite
End If

End Sub

以这种方式调用子:
Sub x()

ColourCell "A1", "Green"

End Sub

关于excel - 使用公共(public) VBA 函数更改 Excel 中的单元格颜色背景 - 不是 VBA 程序员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59287290/

相关文章:

excel - 使用带有 sumifs 的数组

excel - 找出较长期间内较短的天数进行计算

excel - 收缩每边选择 1 的单元格

Excel - 基于与某些文本匹配的行中的值的下拉列表值

vba - VBA 中 Scripting.Dictionary 类的 .item() 方法的奇怪行为

filter - Google Sheets 公式创建 "jagged list"范围内所有唯一值的 1 列唯一输出范围

sql - 编写多个条件时的 Case 的更好方法

c# - 通过网络浏览器打开 .xls/.xlsx 文件并使其对用户可编辑

excel - selenium v​​ba从Web表中提取数据的最后一段代码复制文本不起作用

excel - 在 Excel 中计算数组中的 INDIRECT