2
以下は私が作業しているコードです。しかし、同じワークブックから別のワークシートを選択すると何かが間違っていることに気付きました。別のワークシートを選択した後に変数が間違っていたVBA
変数ShiftName
は、以下のコードのSheets("Cash").Select
を通過すると変化するようです。
ShiftName
の列がワークシート "ShiftRoster"の "B"から "Cash"の "C"に変更され、ShiftName
の出力が間違っていると思われます。
これを解決する方法があるかどうかチェックしたいと思いますか?
Sub Testing()
Sheets("Shift Roster").Select
Range("A1").Select
Cells.Find("LEAVE").Activate
r1 = ActiveCell.Row
Dim ShiftRowName As Integer
Dim ShiftColName As String: ShiftColName = "B"
Dim ShiftColLeave As String: ShiftColLeave = "E"
Dim ShiftName As String
Dim ShiftReason As String
Dim CashRowName As Integer
Dim CashColName As String: CashColName = "C"
Dim CashColLeave As String: CashColLeave = "H"
Dim CashName As String
Dim CashLeave As String
ShiftRowName = r1 + 1
Do While Cells(ShiftRowName, 1) <> ""
ShiftName = Cells(ShiftRowName, ShiftColName)
ShiftReason = Cells(ShiftRowName, ShiftColLeave)
If ShiftName = "" Or IsEmpty(ShiftName) Then
Exit Do
Else
'SOMETHING WENT WRONG FROM HERE ONWARDS
Sheets("Cash").Select
Range("C1").Select
Cells.Find("Name").Activate
r2 = ActiveCell.Row
CashRowName = r2 + 1
Do While Cells(CashRowName, 1) <> ""
CashName = Cells(CashRowName, CashColName).Value
If CashName = "" Or IsEmpty(CashName) Then
Exit Do
Else
MsgBox ShiftName
End If
CashRowName = CashRowName + 1
Loop
End If
ShiftRowName = ShiftRowName + 1
Loop
End Sub
はい、 '選択 'と' * .Active ...'プロパティを使用しないでください。彼らは本質的に信頼性が低く、また遅いです。 – RBarryYoung
@RBarryYoung代わりに何を使うべきですか? – stupidgal
ダイレクトレンジを使用し、オブジェクトインスタンスを 'SET'で変数に保存する必要があります。 – RBarryYoung