我有一个宏,它将来自A列和B列的数据合并到C列中。
示例: 如果A1 = 1且B1 = 5,则A2 = 10,A3 = 7且B3 = 8。
因此,我们的C列将具有C1 = 1,C2 = 2,C3 = 3,C4 = 4,C5 = 5,然后将跳过6,然后C6 = 7,C7 = 8,然后将跳过9然后C8 = 10。
我当前的输出:
我们可以在这里看到A和B列是输入,我们希望在C列中输出
我的问题吗? 在我的C列中,我获取了正确的数据,但B099的写法是B99,A012的写法是A12,依此类推。我们如何避免这种情况?我想要C栏中的完整数字,例如B099和A012。
我的代码:
Option Explicit
Private Sub CommandButton1_Click()
Dim rowNo, lastRow, Val1, Val2, Val3, first, last, i, j As Variant
rowNo = 1
lastRow = ThisWorkbook.Sheets("Sheet2").Range("A" &
ThisWorkbook.Sheets("Sheet2").Rows.Count).End(xlUp).Row
For i = 1 To lastRow
first = ThisWorkbook.Sheets("Sheet2").Range("A" & i).Value
last = ThisWorkbook.Sheets("Sheet2").Range("B" & i).Value
Val1 = Mid(first, 2, 4)
Val2 = Mid(last, 2, 4)
Val3 = Left(first, 1)
If IsEmpty(Range("B" & i)) = True Then
ThisWorkbook.Sheets("Sheet2").Range("C" & rowNo).Value = first
rowNo = rowNo + 1
Else
For j = Val1 To Val2
ThisWorkbook.Sheets("Sheet2").Range("C" & rowNo).Value = Val3 & j
rowNo = rowNo + 1
Next j
End If
Next i
End Sub