VBA将数据从一个表格复制到另一个表格,如果单元格为空,则转到下一个单元格
我试图找出如何编写一个代码,如果在Sheet1上给定一组数据:
例如:
C 30 1234 31 0 32 0 33 56 34 789
(所有这些数字的范围从1-7位数。)
我想将数据复制到Sheet2上,如下所示:
XYZZ AA AB AC AD 57 1 2 3 4 58 5 6 59 7 8 9
这只是一个简单的例子,我有一个很长的数据列表,有时包含数字0,但我只希望大于零的数字复制到Sheet2上。
到目前为止,这是我迄今为止编写的代码:
Sub IfBlankNext() Dim i As Integer For i = 1 To 99 If Worksheets("Sheet1").Cells(i,1).Value <> 0 Then {code code code} End If Next i End Sub
出于某种原因,此代码只返回最后一个单元格 – 在这种情况下,单元格数据来自Sheet1单元格(99,3)
我的代码运行之前:
Sub IfBlankNext() Dim i As Integer, x As Integer, LastRow As Long, DestLast As Long, HoldVal As String 'Define your last row of data by going to end and moving up: LastRow = Sheets("Sheet1").Range("C" & Rows.Count).End(xlUp).Row For i = 1 To LastRow If Sheets("Sheet1").Range("C" & i).Value > 0 Then 'Define the LastCol on your destination sheet using similar method as row: DestLast = Sheets("Sheet2").Range("X" & Rows.Count).End(xlUp).Row + 1 If DestLast < 58 Then DestLast = 58 HoldVal = Sheets("Sheet1").Range("C" & i).Value For x = 1 To Len(HoldVal) Sheets("Sheet2").Cells(DestLast, x + 23).Value = Mid(HoldVal, x, 1) Next x End If Next i End Sub
在我的代码之后:
更改单元格alignment的代码:
Sheets("Sheet2").Range("Name of Range").HorizontalAlignment = xlLeft OR xlRight