2016-07-09 13 views
1

Excelでカレンダー/スケジュールブックを作成しています。毎月のワークシートがあります。Excel - 現在の日付のワークブックでセルを選択するマクロ

今私はCommandButtonを作成して、現在の日付を含むセルに移動させる必要があります。現在の日付のセルは1つだけですが、ワークブックの任意のシートに配置できます。

私は数日前から検索してきましたが、それは正しくできません。

物事私がしようとしてきた。(それは私がEscキーを押すまでのセルを再選択し続けるが)現在の日付を持つセルが同じシート上にあるとき、これはちょっと作品

Private Sub CommandButton1_Click() 

Dim Sh As Worksheet 
Dim Loc As Range 

For Each Sh In ThisWorkbook.Worksheets 
    With Sh.UsedRange 
     Set Loc = .Cells.Find(What:=Int(Date), LookIn:=xlValues) 
     If Not Loc Is Nothing Then 
      Do Until Loc Is Nothing 
       Loc.Select 
       Set Loc = .FindNext(Loc) 
      Loop 
     End If 
    End With 
    Set Loc = Nothing 

Next 

End Sub 

が、時に失敗しましたセルが別のシートにあります。

助けていただけたら幸いです!

+0

ループを使用する必要がないように、ワークシート・レベルではなくワークブック・レベルでコードを適用する方法の例を次に示します。http://ccm.net/faq/20153-excel-apply-vba-コードから複数のシート –

答えて

1

Do Whileループは必要ありません。あなたが探しているだけなので、この簡単なFor/Nextはすべきです。コードが見つかると、コードはループを終了し、最後にSelectセクションに移動します。日付が見つからない場合は、何も選択されません。

親シートをアクティブにする必要があることに注意してください。

+0

なぜdownvote? –

+0

彼はすでにループをしていました。私の答えの唯一の欠点は、彼がすべてのシートを検索するために見つけた方法はあなたと同じだったので、彼はこれらのループを使用することから彼を得ることによって彼の答えを改善しなかったということでした。私はそれをhttp://www.ozgrid.com/forum/showthread.php?t=36968に基づいています。ベクトル化された答えを見つけようとしてください。 –

+0

@ Hack-R Forループはシートを通してのみ行われることに注意してください。それが終わったのです。それから各シートで、それは見つけられたかどうかです。私が見つけた方法であなたが何を意味するのか分かりません。それはあなたのようなものなので、あなたは私を落としたと言っていますか?そうであれば、それは答えが質問を解決して動作するかどうかを反映するはずの下垂体の誤った使用です。 –

関連する問題