运行 VBA 代码时出现错误。
运行时错误“1004”:无法设置 Range 类的 FormulaArray 属性
我认为这是因为我有超过 255 个字符。
如果是这种情况,有人知道我可以使用的解决方法吗?
我的代码是下面漂亮的一团糟:
formula_string = "=-SUM("
account_counter = 1
Do Until Range("tblAccounts[[#Headers],[Accounts]]").Offset(account_counter, 0).Value = ""
account_name = Range("tblAccounts[[#Headers],[Accounts]]").Offset(account_counter, 0).Value
formula_string = formula_string & "IF(IFERROR(" & account_name & "[Category]=[@Categories],FALSE)*(" & account_name _
& "[Transaction date]>=Budget!C$1)*(" & account_name & "[Transaction date]<=EOMONTH(Budget!C$1,0))," & account_name _
& "[Outflow],0),"
account_counter = account_counter + 1
Loop
formula_string = Left(formula_string, Len(formula_string) - 1) & ")"
Do Until Range("tblBudget[[#Headers],[Ignore?]]").Offset(category_counter, 0).Value = ""
If Range("tblBudget[[#Headers],[Ignore?]]").Offset(category_counter, 0).Value = "No" Then …Run Code Online (Sandbox Code Playgroud) 我希望只用一个案例来执行一个选择案例 - 案例不等于"P","Ev"或"Af".
这就是我到目前为止所拥有的.
Select Case Range("my_range").Offset(0, column_offset).Value
Case Not "P", "Ev", "Af"
'my code
End Select
Run Code Online (Sandbox Code Playgroud)
该案例可以等于50个不同的值,我希望'my code对所有这些值执行相同的操作(下),除非结果是P,Ev或Af.
我也试着Not "P", Not "Ev", Not "Af"用替换一起,使用Or,但无济于事.
每次响应都是:
运行时错误'13':类型不匹配.
我知道我可以用if语句替换它......
If Range("my_range").Offset(0, column_offset).Value <> "P" And Range("my_range").Offset(0, column_offset).Value <> "Ev" And Range("my_range").Offset(0, column_offset).Value <> "Af" Then
'my code
End if
Run Code Online (Sandbox Code Playgroud)
但如果可以的话,我更愿意使用Select Case选项.
有人想过吗?
非常感谢
编辑
我还应该说我确实尝试过使用过
Select Case Range("my_range").Offset(0, column_offset).Value
Case "P", "Ev", "Af"
Exit Select
Case Else
'my code
End Select
Run Code Online (Sandbox Code Playgroud)
但错误信息:
编译错误:预期:Do或For或Sub或Function或Property …