2017-11-10 4 views
1

で構成だけ上段にマッチ機能を使用して、セルの選択を自動化します。この目的のために、私は、行8で選択する値と、私は次のコードを試してみましたVBA:私は、現在の日付に応じて、セルの選択を自動化したいVBAの</p> <p>と初心者だ日付

7行に時系列順に日付を持っている:

Sub selectvalues() 

Dim rtc As Double 
Dim ystdy As Date 
Dim tdy As Date 

szToday = Format(Date, "YYYYMMDD") 
tdy = szToday 
ystdy = WorksheetFunction.WorkDay(tdy, -1) 

rtc = WorksheetFunction.Match(ystdy, Range("A7", "ZZ7"), 0) 

Cells(8, rtc).Select 


End Sub 

をしかし、私は

13 error on execution time, types doesn't match

を取得します

誰でも助けてくれますか?

ありがとうございました。

+0

あなたがTDY = szToday – Storax

+0

'szToday'が文字列であり、あなたがに文字列を入れしようとしている日付に文字列を代入してみてください'tdy = szToday'と書いた日付です。もちろん、それは失敗します。代わりに 'tdy = Date'を使用してください。将来的にこのような問題を避けるためには、 'Option Explicit'を使用することをお勧めします(それが何であるかわからない場合は、検索してください)。 – Ralph

+0

ありがとう、私はあなたがszTdoayそして、変更TDY:= Date' しかし、今、私は1004エラーを取得 'TDYを: – Mauro

答えて

2

あなたの場合、特定の値を見つけようとしているので、Find関数がうまく機能する可能性があります。

、以下のコードのコメント内の説明を、コードを試してみてください。

Option Explicit 

Sub selectvalues() 

Dim rtc As Variant 
Dim ystdy As Date 
Dim tdy As Date 
Dim FindRng As Range 

tdy = Date 
ystdy = WorksheetFunction.WorkDay(tdy, -1) 

' use Find function 
Set FindRng = Range("A7", "ZZ7").Find(What:=ystdy, LookIn:=xlValues, lookat:=xlWhole) 

If Not FindRng Is Nothing Then ' see that find was successful 
    FindRng.Select 
Else 
    MsgBox "Error, unable to match " & ystdy & " in the specified range", vbCritical 
End If 

End Sub 
+0

ありがとうございます、私は機能について説明します。なぜそれがうまく理解できないのか分かりません。 – Mauro

+0

rtcをバリアントとして定義していますか?私はこのコードでユーティリティーを見つけられません。おかげで – Mauro

+1

@マウロ私は私のオブジェクトと変数のすべてを宣言したい、あなたはそれなしで試してみて、何が起こるか見ることができます –

関連する問題