VBA 코드를 실행할 때 오류가 발생합니다.255 자 이상의 배열 수식
런타임 오류 '1004': 나는 255 자 이상을 가지고 있기 때문에이 가정 레인지 클래스
의을 FormulaArray 속성을 설정하려면 수 없습니다.
이 경우 내가 사용할 수있는 임시 해결책을 알고있는 사람이 있습니까?
내 코드는 아래의 아름다운 엉망이다 : 나는 ".Formula 문"과 ".FormulaArray"를 교체 한 후 수동으로 그것을 배열을하면
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
Do Until Range("tblBudget[[#Headers],[Ignore?]]").Offset(0, column_counter).Value = ""
If Right(Range("tblBudget[[#Headers],[Ignore?]]").Offset(0, column_counter).Value, 8) = "Outflows" Then
Range("tblBudget[[#Headers],[Ignore?]]").Offset(category_counter, column_counter).Select
Selection.Formula = formula_string
End If
column_counter = column_counter + 1
Loop
End If
category_counter = category_counter + 1
Loop
(Ctrl 키를 입력 + Shift 키를 +)는 그래서 잘 작동 수식 자체가 잘 작동합니다.
불행히도 각 셀 내에서 참조해야하는 10 개의 계정을 가질 수 있기 때문에 훨씬 간단하게 만들 수는 없습니다. (테스트를 위해 현재 사용하고있는 3 가지 계정은 525 자이지만, 각 계정의 이름이 무엇이든간에).
내가 말했듯이 Excel에는 문제가없는 것 같습니다 ... 문제가있는 VBA입니다.
많은 감사