ワークブックに 10 枚のシートがあり、10 番目のシートには最初の 9 枚のシートの名前が含まれています。各シートからカウントを取得するために、VBA を使用して FORMULA を作成しようとしていました。
たとえば、sheet1
範囲 (a1:b500) からのデータがあり、カウントの基準は、列 A の空白以外のセルごとに、列 B に空白のセルがあるはずです。
範囲 (a1:a500) を 1 つの配列として取り、範囲 (b1:b500) を 2 番目の配列として取り、上記の基準に基づいてカウントを与える UDF を作成することは可能ですか? 関数の引数はシート名のみにする必要があります。たとえば、関数は引数として を使用する必要があります。=GetCount(sheet1)
ここGetCount
で、 は関数名で、sheet1 は引数です。
countif
ループを使用して解決策を見つけましたが、vba でループを使用したりsum(array)
、Excel でループを使用したり、配列機能で試したりしたくない
Function GetCount(Str As String)
Application.Volatile (True)
Dim wb As Workbook
Dim sh As Worksheet
Dim rng1 As Range
Dim r As Integer
Dim strCount As Integer
Set wb = Workbooks("Integrated Working Tracker")
Set sh = wb.Sheets(Str)
Set rng1 = sh.Range("a1:a500")
For Each c In rng1.Cells
If c.Value <> "" And c.Offset(0, 1).Value = "" Then
strCount = strCount + 1
End If
Next
GetCount = strCount
Set sh = Nothing
Set wb = Nothing
Set rng1 = Nothing
End Function
どんな助けでも大歓迎です。前もって感謝します