|
こんばんは
1)最初に判定した方が良くないでしょうか?
2)変数の宣言をキチンとすべきと思います。
を、まず検討して下さい。
>ぜひ解決方法を教えてください。
解決方法は、
3)Select、Activate を省いたコード
に尽きます。
今のコードでは、どのブックのどのシートのどのセルを処理対象としているのか
第三者には正確には理解出来ません。
こんな↓感じで対象オブジェクトを明確に指定します。
Sub test()
Dim 名前 As String
Dim ws As Worksheet
名前 = Worksheets("労務メイン").Cells(3, 7).Value
With Worksheets("労務_集計") '現場名を設定してデータ抽出
.Range("A2").AutoFilter Field:=1, Criteria1:=名前
.AutoFilter.Range.Copy
End With
A02月報入力シートを開く ws
If ws Is Nothing Then
MsgBox "対象月報入力シート無し"
Exit Sub
Else
ws.Range("J15").PasteSpecial Paste:=xlValues
End If
End Sub
Private Sub A02月報入力シートを開く(ByRef ws As Worksheet)
Dim i As Long
With Sheets("メイン")
i = .Range("C1").Value
If i >= 1 And i <= 12 Then
i = IIf(i < 5, i + 8, i - 4)
On Error Resume Next
Set ws = Sheets(CStr(i & "月"))
On Error GoTo 0
End If
End With
End Sub
|
|