0
私持っているVBAマクロ以下 - 基本的エクセルVBAは - に「最初の行の場合は0」を追加する既存のマクロ
Sub CopyData()
Application.ScreenUpdating = False
Dim CRow As Integer
Dim CColBRange As String
Dim PColBRange As String
Dim Continue As Boolean
'Select Sheet1
With Sheets("KG9New")
.Select
'Initialize variables
Continue = True
CRow = 1
While Continue = True
CRow = CRow + 1
'Test B2:
If CRow = 2 And Cells(CRow, 2).Value = 0 Then
Range("A" & CStr(CRow) & ":C" & CStr(CRow)).Copy
Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
CRow = CRow + 1
End If
CColBRange = "B" & CStr(CRow)
PColBRange = "B" & CStr(CRow - 1)
'Break loop upon finding blank cell.
If Len(Range(CColBRange).Value) = 0 Then
Continue = False
End If
'Copy first instance of each changing Value in MachineRunning.
If Range(CColBRange).Value <> Range(PColBRange).Value Then
Range("A" & CStr(CRow) & ":C" & CStr(CRow)).Copy
Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
End If
Wend
End With
Application.ScreenUpdating = True
End Sub
、これは新しいシートときに渡って私のテーブルとコピーの値の列Bを経由スキャン値が1から0または0に変更されます。
私の問題は、最初の値(B2)が1になると仮定していることです。B2 = 0の場合はRow 2の値を返すことをお勧めします。
初期化されたCRowを1に変更しようとしましたが、これは1または2であるかどうかにかかわらず2行目を返します(ヘッダーと異なるためです)。
誰かが私を助けてくれますか?
ありがとう@JNevill。それはまさに私が必要とした助けです。自分のニーズに合ったわずかな変更でオリジナルの質問にコードを追加しました。 – Jamsandwich