下記のプログラムを実行すると表題のエラーが出ます。
コード上、何かおかしいでしょうか。
Sub kintaiC()
Dim i As Long, j As Long, lastRow As Long
Dim mycol As Long, endT As Long
Dim wScriptHost As Object
Dim Filename2 As String
Dim fl2 As Workbook
Dim c As Range
'ファイルを開く
Set wScriptHost = CreateObject("WScript.shell")
ChDir wScriptHost.specialFolders("Desktop")
Filename2 = Application.GetOpenFilename
Set fl2 = Workbooks.Open(Filename:=Filename2)
Application.ScreenUpdating = False
With Worksheets(2)
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
For j = 1 To .Cells(1, Columns.Count).End(xlToLeft).Column
With .Cells(1, j)
Select Case .Value
Case "深夜60時間超"
.Value = "振替"
.Interior.ColorIndex = 45
Case "確認者氏名"
.Interior.ColorIndex = 3
Case "勤怠項目"
mycol = j
Case "実績終業時間"
endT = j
.Columns(j).NumberFormatLocal = "hh:mm"
End Select
End With
Next j
.Range("A1").AutoFilter field:=mycol, Criteria1:="振替出勤"
If .Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
Range(.Cells(2, mycol), .Cells(lastRow, mycol)).SpecialCells(xlCellTypeVisible).Interior.ColorIndex = 37
End If
.Range("A1").AutoFilter field:=mycol, Criteria1:="振替休日"
If .Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
Range(.Cells(2, mycol), .Cells(lastRow, mycol)).SpecialCells(xlCellTypeVisible).Interior.ColorIndex = 38
End If
'//▼ココから色付け//
.AutoFilterMode = False '//フィルタを解除//
Set c = .Rows(1).Find(what:="振替", LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
.Range("A1").AutoFilter field:=c.Column, Criteria1:="<>" '//←空白以外でフィルタを掛ける//
If .Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
Range(.Cells(2, c.Column), .Cells(lastRow, c.Column)).SpecialCells(xlCellTypeVisible) _
.Interior.Color = .Cells(1, c.Column).Interior.Color
End If
End If
.AutoFilterMode = False '//フィルタを解除//
Set c = .Rows(1).Find(what:="確認者氏名", LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
.Range("A1").AutoFilter field:=c.Column, Criteria1:="<>"
If .Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
Range(.Cells(2, c.Column), .Cells(lastRow, c.Column)).SpecialCells(xlCellTypeVisible) _
.Interior.Color = .Cells(1, c.Column).Interior.Color
End If
End If
'//▲ココまで追加//
.AutoFilterMode = False
For i = 2 To lastRow
With .Cells(i, endT)
If .Value = TimeValue("17:30") Then
.Interior.ColorIndex = 43
Next i
End If
End With
End With
Application.ScreenUpdating = True
End Sub
No.1ベストアンサー
- 回答日時:
'//▲ココまで追加//
.AutoFilterMode = False
For i = 2 To lastRow
With .Cells(i, endT)
If .Value = TimeValue("17:30") Then
.Interior.ColorIndex = 43
End If
End With
Next i
End With
Application.ScreenUpdating = True
if 文が閉じられていません
with文が閉じられていません
上記を閉じて next jになります
ありがとうございました。
For や If 、Withなどを入れ子にすると初心者にとってはすごい複雑で理解するのが難しいです。
でも問題は解決しました。
No.2
- 回答日時:
1)For i = 2 To lastRow
2)With .Cells(i, endT)
3)If .Value = TimeValue("17:30") Then
.Interior.ColorIndex = 43
1’)Next i’←ここと
3’)End If’←ここ
2’)End With
(1)For_Nextと(3)IF_End Ifの関係が変ではないですか?
ついでに
(2)With_End Withの位置もおかしい
本来は
A)
B)
C)
C’)
B’)
A’)
のような構文になっているはずです。
ご返答ありがとうございます。
For~NextやWith、IF_End If などが絡み合うと位置づけが初心者にとっては難しいです。
勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Excel(エクセル) マクロで列を加えたら上手くいかなくなりました。 2 2022/05/23 17:59
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
fortranでプログラムを実行する...
-
VB2008で定数に色の設定をした...
-
エクセルでマクロを実行すると...
-
HEWを使用しているのですが、こ...
-
適切な変換関数が存在しない???
-
VisualC++でエラーが大量に
-
Arduinoに関する質問
-
fopen() がたまにNULLを返す
-
sys/time.hのインクルードがで...
-
arduinoのエラーメッセージ
-
C#の質問
-
c++ セグメントエラー
-
UNIX-Cのsystem関数でエラーを...
-
VC++6.0からVC++2010への移行
-
Return に対応する GoSub があ...
-
レコードセットをcloseする所で...
-
右オペランドを扱う演算子は定...
-
visual C++ でビルドの中止がで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
バッチからsqlplusの接続エラー...
-
Excelのエラーで困ってます。
-
sys/time.hのインクルードがで...
-
コンパイルできません。
-
HEWを使用しているのですが、こ...
-
RightとLeft関数のライブ...
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
visual C++ でビルドの中止がで...
-
デバッグ中のエラーのことで教...
-
multiple definitionというエラー
-
ビルドが失敗してしまいます
-
LPCWSTRとchar
-
Handlesについて
-
BC30002: 型 'ListItem' が定義...
-
左側がクラス、構造体、共用体...
おすすめ情報