2016-06-16 50 views
-1

我想複製表單1「Delivery Docket」中的值。我想要複製的單元格將來自A18:A160,所有非空單元格。如何複製所有非空單元格並將它們粘貼到不同工作表中的下一個可用單元格中

下一步是將非空單元格的值粘貼到Sheet2「Shipping寄存器」上,該寄存器將從單元格A2開始,如果單元格不爲空,則向下。我之前曾問一個朋友爲我做這件事,我隱約記得他加了一個循環和+1功能,因爲每次單元有一個值,宏必須移動到下一個單元。

enter image description here

+1

請,更具體的(讀作[怎麼問(http://stackoverflow.com/help/how-to-ask)) –

+0

我我真的無法解釋它,但我會盡我所能。請耐心等待我。 –

回答

0

試試這個:

Private Sub copyNon_EmptyCells() 
    Dim ws1 As Worksheet, ws2 As Worksheet 
    Dim vals() As String, valCount As Integer 
    Dim lastRow As Integer, r As Integer 

    Set ws1 = Sheets(1) 
    Set ws2 = Sheets(2) 

    ' set last row variable 
    lastRow = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row 

    For r = 18 To lastRow 
     If (Not ws1.Cells(r, 1) = vbNullString) Then 
      ReDim Preserve vals(valCount) 
      vals(valCount) = ws1.Cells(r, 1) 
      valCount = valCount + 1 
     End If 
    Next r 

    For r = 0 To valCount - 1 
     ws2.Cells(r + 2, 2) = vals(r) 
    Next r 

End Sub 
+0

我真的很難解釋它,但我會盡我所能。請耐心等待我。我想完成的是從sheet1複製值「Delivery Docket」我想要複製的單元格將來自A18:A160所有不是空單元格,下一步是將非空單元格的值粘貼到Sheet2「Shipping寄存器「將從單元格A2開始,如果單元格不爲空,則向下。我以前曾問一個朋友爲我做這個,我依稀記得他添加了一個循環和+1函數,因爲每次單元有一個值,宏必須移動到下一個單元 –

+0

上面的代碼完全是你除了你最初表示你想要開始的值:「sheet2 B2下去」 – lonestorm

+0

要通過名稱來引用表,使用Set ws1 = Sheets(「Delivery Docket」)等.For循環減輕了需要一個「+1」(這將在Do循環中需要),因爲「Next」命令會將計數器值遞增1(如果使用Step參數,則遞增指定值)。 – lonestorm

相關問題