Microsoft からコピーした、列番号を取得して列文字を再割り当てする関数を使用しています。数式を作成するには、これを行う必要があります。私は一日中調査しましたが、エラーの原因を特定できません (サブプロセスとしてこれを達成しようとしました)。関数は独自のモジュールにあります。私はそれをテストし、正常に動作します:
Function ConvertToLetter(ByRef iCol As Integer) As String
Dim iAlpha As Integer
Dim iRemainder As Integer
iAlpha = Int(iCol / 27)
iRemainder = iCol - (iAlpha * 26)
If iAlpha > 0 Then
ConvertToLetter = Chr(iAlpha + 64)
End If
If iRemainder > 0 Then
ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)
End If
End Function
私にエラーを与えているコードは次のとおりです。
For groups = 1 To i ' level 1 grouping
For iCol = 24 To 136
rCol = ConvertToLetter(iCol)
Cells(Start(groups) - 1, rCol).Formula = "=COUNTA(" & rCol & Start(groups) & ":" & rCol & Finish(groups) & ")"
Next
Next
関数を式自体に代入してみました:
Cells(Start(groups) - 1, ConvertToLetter(iCol)).Formula = "=COUNTA(" & ConvertToLetter(iCol) & Start(groups) & ":" & ConvertToLetter(iCol) & Finish(groups) & ")"
デバッガーは最初の関数呼び出しを通過しましたが、2 番目と 3 番目は通過しませんでした。私が受け取ったエラーは、「モジュールではなく、変数またはプロシージャが必要です」というタイプのものです。2 番目のケースでは、他のエラーが発生し、頭がぼやけて思い出せません。
どんな助けでも大歓迎です。アイデアが尽きた。本当にありがとう!