日付のカウンタが変更されたときにインデックスと一致関数にエラーが発生しました。私は間違いに直面したときにコメントを書いた。必要に応じてデータのサンプルをアップロードしました。 サンプル:http://s000.tinyupload.com/?file_id=00243748825638974221Excel VBA:インデックスとマッチの関数型の不一致エラーを解決する方法
ここではコードです:
Sub regionalAverage()
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
' *** change the declaration here ***
Dim aname() As String
Dim rw As Variant
Dim col As Variant
Dim date_ini As Date
Dim date_fin As Date
'create WorkSheet
' *** add Redim here, so the index of the array will start from 1 ***
ReDim aname(1 To 2)
date_ini = #1/1/2008#
date_fin = #1/2/2008#
For j = 1 To 3
For conteo = date_ini To date_fin
For i = 1 To 2
With Sheets(i)
With Application
col = .Match(j, Worksheets(i).Range("F2:F23393"), 0)
rw = .Match(CLng(conteo), Worksheets(i).Range("D2:D23393"), 0)
'error appeas here
aname(i) = .Index(Worksheets(i).Range("H2:H23393"), col, rw)
End With
End With
Next i
' computation
area = 6.429571
Sheets("Output").Activate
Range("A1").Select
ActiveCell.Offset(0, j).Select
colname = Split(ActiveCell(1).address(1, 0), "$")(0)
Columns("" & colname & ":" & colname & "").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Select
ActiveCell.Value = "=(SUM(" & aname(1) & "," & aname(2) & "))/" & area & ""
Next conteo
Next j
End Sub
私はエラーに直面している2008年1月2日に日付が変わるが、どのように私はそれを解決できますか?!
あなたはApplication.Match
とVariant
データ型を使用しているので、値がない場合は、エラーが.Match
の呼び出し中に発生しませんが、col
とrw
のようなこれらの変数はError
タイプが含まれていますあなたの
ファイルがアップロードされていますか?私はあなたが言ったことをしましたが、改善はありません。この問題を解決する方法はありますか?私は本当に急いでいる。ありがとう –
同じエラー? aname(i)= CStr(.Index(Worksheets(i).Range( "H2:H23393")、col、rw)) 'もしあなたが、それがうまくいかない場合、 'col'、' rw'の値と 'Range(" H2:H23393 ")によって与えられたセル座標にどのような値が存在するかを示してください。 。 –
私はCstr()を使用しましたが、動作しません。ファイルのサンプルがそこにアップロードされたというリンクがありました。ダウンロードして自分で確認していただければ幸いです。この問題はありがたいです。 –