私は Stackoverflow フォーラム (および基本的には Google の他のすべての場所) を見回して、VBA にもう少し精通していればおそらく十分である私の質問に対する多くの「ほぼ」回答を見つけましたが、いじりましたしばらくの間、整理できませんでした。少しイライラしてきたので、質問する時が来たと思いました!私の問題を説明するときに言葉遣いなどが間違っていたらごめんなさい!それはおそらく私の構文の問題です。
基本的に、スプレッドシートの列からデータを取得し、特定のパラメーター セットのセルの Countifs (とにかくだと思います) を実行できるようにする必要があります。必要なデータはすべて、「Dimension1 x Dimension 2」、たとえば「8.5 x 11」の形式のページ ディメンションになります。
Valtest = Application.WorksheetFunction.CountIfs(Range("P:P"), "8.5 x 11")
この式は、おそらく驚くべきことではありませんが、問題なく機能します。しかし、次元を反転させるだけでなく、<= 8.5 x <=11 の次元を与えるには、countifs (または必要なもの) が必要です (<=11 x <=8.5)。
式を(および同様の)形式に変更しようとしました
Valtest = Application.WorksheetFunction.CountIfs(Range("P:P"), "<=8.5" & " x " & "11")
しかし、それは 3 x 4 や 22 x 11 などの次元を報告します。countif が複数のパラメーターを使用できることは知っています (これが、通常の countif ではなく、いじっていた理由です)。引数が正しいパスであるか、引用符が正しく使用されているかどうか、または...誰が知っていますか?
If-then ステートメントを問題なく動作させることができました (配列を使用し、カウンターを使用して各セルを循環させます) が、これは明らかに最速の方法ではありません。これが、私の目標をもう少し明確にするためです。
'If x(0) <= 8.5 And x(1) <= 11 Or x(1) <= 8.5 And x(0) <= 11 Then
関連する問題では、前の質問 (8.5 X 11) の検索結果を含めずに、たとえば <=11 x <=17 などのページを見つけることができる必要もあります。そのため、<8.5 のように >=17 未満というような複数のパラメーターの適切な構文を知る必要があります。
前もって感謝します!どんな助けでも大歓迎です。十分に説明していない場合はお知らせください。
編集:私が検索するデータの例:
A Count for 8.5 x 11 (expected output)
8.6 x 11 5
8.5 x 11
8.5 x 11
8.5 x 11
8.5 x 11
8.4 x 11
22 x 11
10 x 17