1

特定の列のすべての値を取得し、すべての値を配列に格納して、これらの値を使用してオートフィルターを適用できるようにします。

rowcount=objExcel.Activeworkbook.Sheets(1).UsedRange.Rows.count

Dim a()
Redim Preserve a(rowcount)
'msgbox rowcount

'Storing all column values in an array'

for i=2 to rowcount
  a(i-2) = objSrcWorksheet.Cells(i,7).Value
Next

'Checking values of array'
for i=2 to rowcount
  msgbox a(i-2)

'Applying Autofilter'
 With objSrcWorksheet


.Range("G1").AutoFilter 2,"=a(i-2)"  'Problem is here'
'.Range("G1").AutoFilter 2,"=2"     'While hardcoded values are working'

 End With
Next
4

1 に答える 1

1

VBScriptは、文字列内の変数を解決しません。二重引用符で囲むと、配列のフィールドの値ではなくa(i-2)リテラル文字列になります。"a(i-2)"i-2a

に変更.AutoFilter 2, "=a(i-2)"する.AutoFilter 2, "=" & a(i-2)と、問題は解消されます。

于 2013-02-17T15:10:49.820 に答える