我知道还有其他问题要解决“参数数量错误或属性分配无效”的问题,但是没有一个问题可以解决在将RGB颜色分配给单元内部的基本行上生成此错误的问题。
此错误在下面的第6行上生成。我不知道这怎么可能,因为RGB显然有三个参数。
我唯一能想到的是,今天早些时候,我在另一个(现在是封闭的电子表格)中编写了一个宏,在该宏中,我使用缩写“ rgb”作为变体名称。我知道,在R中,可以通过用UDF替换它来意外地重新定义基本函数,而且我想知道我是否现在不知不觉地将“ rgb”更改为VBA基本代码中的函数以外的其他内容。但这听起来似乎不合理-我从未听说过VBA中发生的情况,而且它更像是一种“傻瓜”型语言,我认为这种语言不会给用户带来这种可选择性。
编辑是-通过更改宏名称可以解决此问题,这是一个愚蠢的错误。但是,我要指出的是,此错误也发生在另一个子例程中,我没有以这种愚蠢的方式来命名。我也需要调查为什么它在该子程序中也会发生。
sudo update-ca-certificates
答案 0 :(得分:1)
如果评论没有完全解释它。.您在问题中陈述:
今天早些时候,我在另一个宏中写了一个宏(现已关闭 电子表格),在这里我使用缩写“ rgb”作为变体名称。
但是,在您提供的示例中,您实际上已经调用了子例程,您也正在调用RGB。 这 是造成此问题的原因。重命名可以解决该问题,但是当我在这里时,我可以与您分享一些其他观点:
这将起作用:
Option Explicit
Sub Set_G20_RGB()
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = Sheets("Sheet1") ' should really be Set ws = wb.Sheets("Sheet1")
ws.Range("G20").Interior.Color = RGB(255, 51, 204)
End Sub
但是,为了使其更有用,您可能想要使用类似以下内容的东西:
Option Explicit
Sub Set_RGB(clr_rng As Range, red_value As Integer, grn_value As Integer, blu_value As Integer)
clr_rng.Interior.Color = RGB(red_value, grn_value, blu_value)
End Sub
可以这样称呼:
Set_RGB ThisWorkbook.Sheets("Sheet1").Range("G20"), 255, 51, 204
或..
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")
Set_RGB ws.Range("G20"), 255, 51, 204