使用 Selection.FormatConditions.Add 时——如何提供给 Formula1 的文件名,这样 Excel 才不会崩溃?

When Using Selection.FormatConditions.Add – how do you provide the file name given to Formula1 so that Excel does not crash?

我有一个程序可以有条件地格式化另一个工作簿的单元格。今天晚上,我第一次注意到程序开始崩溃并显示消息“运行-time error 5: Invalid procedure call or argument”。我相信这是因为我试图有条件地格式化的文件的名称包含方括号(!)我写这个是因为当我保存文件并删除方括号并再次 运行 我的程序时,那里是没有运行-time error 5的问题!谁能解释一下是否有办法解决括号问题?

谢谢!

我的代码如下:

formulaAddMe = "=[" & targetTestWorkbook & "]" & targetTestSheet & "!" & targetPlacementPosition & formulaAddMe3

Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
                    formulaAddMe
                Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
                With Selection.FormatConditions(1).Interior
                    .PatternColorIndex = xlAutomatic
                    .ThemeColor = xlThemeColorDark1
                    .TintAndShade = 0
                    .Color = colourToInsert
                End With

    

当文件名包含括号时——在我的例子中是 PixelActivitySimpsons6(MeNewRandomPixels).xlsx——变量 formulaAddMe 包含以下内容:

formulaAddMe is
= [PixelActivitySimpsons6(MeNewRandomPixels).xlsx]Sheet2!$C=1

当文件名没有括号时 - 所以它变成 PixelActivitySimpsons6MeNewRandomPixels.xlsx - 变量 formulaAddMe 包含以下内容:

formulaAddMe is
= [PixelActivitySimpsons6MeNewRandomPixels.xlsx]Sheet2!$C= 1

任何人都可以解释一下是否可以格式化我的 formulaAddMe 以便它可以在 Selection.FormatConditions.Add 中成功处理?

谢谢!

条件格式不允许公式引用不同的工作簿。

关于在文件名中使用公式的括号这一普遍问题,您可以通过在 ''

中包围 file/sheet 来解决这个问题

例如:

='[PixelActivitySimpsons6(MeNewRandomPixels).xlsx]Sheet2'!$C=1