プロが教えるわが家の防犯対策術!

Excel2007で年間勤務シフト表を作成しています。
4/1~3/31までのシフトを入力するため、非常に時間がかかることもあり、現在「初期値としてのグループNO」を入力して「シフト自動生成」のボタンを押すと休日指定したセル以外に1~6の数字が入る、というVBAを置いています(その際もこちらでお世話になりました)。
一旦、そのシステムを見て頂いたところ、「たとえば6月1日から後のシフトを変更したい、ってなった時に4/1~5/31のデータはそのままにして、6/1~のデータだけを変更できるようにしてもらえないか」と言われました。
そこで
1、「シフト修正」というボタンを押すとシフト修正用の入力フォームが表示され、変更をスタートする日付と、変更後のグループNOを入力する
2、指定したセルに、先ほどの日付とグループNOが転記される
3、その記載されたセルを元に、通常上端~下端まで行っている作業を、指定した列~下端、まで行う
と3段階で実行しようと思っています。
とりあえず1,2のステップまでは何とか作成できたのですが、3のステップが上手くいきません。
現在H20セルに指定した日付、H21セルに変更するグループNOが入っている状態ですが、

Dim c As Range
Dim firstAddress As String
With Worksheets("入力フォーム").UsedRange.Columns(2)
Set c = .Find(What:=Range("H20").Value, _
LookIn:=xlValues, LookAt:=xlPart)

という感じで検索してみても反映されずに無反応状態です…。

A 回答 (1件)

試してみて


日付をシリアル値にして検索


Dim c As Range
Dim myForm1 As String
Dim firstAddress As String

With Worksheets("入力フォーム").UsedRange.Columns(2)

myForm1 = .cells(1).NumberFormatLocal
.NumberFormatLocal = "標準"

Set c = .Find(What:=CLng(Range("H20").Value), _
LookIn:=xlValues, LookAt:=xlWhole)

.NumberFormatLocal = myForm1

参考URL:http://www.moug.net/tech/exvba/0050163.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています