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