我是VBA的新手,但我很迷戀!我已經創建了一個工作簿,用於跟蹤每個工作表兩個星期塊的加班時間,每個工作表包含一個2周塊。我試圖調試的宏旨在將工作表中所做的任何更改轉換爲以下工作表。訣竅是,一行中的數據可能在以下工作表中的不同行中,所以我嘗試在宏中使用VLookup以保持其準確性。在宏中使用VLookup
Sub CarryForward()
Dim Answer As String
Answer = MsgBox("This should only be used for a PERMANENT crew change." & vbNewLine & "If you are adding a new person to the list," & vbNewLine & "please use the Re-Sort function." & vbNewLine & "Do you want to continue?", vbExclamation + vbYesNo, "Caution!")
If Answer = vbNo Then
Exit Sub
End If
Application.ScreenUpdating = False
Dim ActiveWorksheet As String
ActiveWorksheet = ActiveSheet.Name
For i = (ActiveSheet.Index + 1) To Sheets("DATA").Index - 1
For x = 5 To 25
Dim a As String
Dim b As String
a = "B" & x
b = "C" & x
ActiveSheet.Range(b).Value = Application.WorksheetFunction.VLookup(a, Sheets(ActiveWorksheet).Range("B5:C25"), 2, False)
Next x
Range("A3").Select
Next i
Sheets(ActiveWorksheet).Select
Application.CutCopyMode = False
Range("A3").Select
Application.ScreenUpdating = True
End Sub
我很確定這只是VLookup代碼行中的語法錯誤。發佈的很多幫助都接近我所尋找的內容,但它並沒有讓我超越終點。
任何幫助,將不勝感激!
這會更容易,如果我們看到了您的文件準則,您需要什麼,或至少一個截圖。 – brettdj
對於上述評論+1,我也想補充說,VBA是偉大的,但過度它是不好的。我不確定你需要VBA來跟蹤加班,除非你有特別的需求。 – ApplePie
這是契約性的。涉及一個員工工會。 – user1935623