2014-03-03 67 views
0

我想使用宏來複制整列數據,但停止一旦它達到0或空白,因爲我只想列中的單元格那裏實際上有數據。如何複製一列,但停止一旦它達到0或空白

編輯:

Worksheets("C_Plan").Select 
Range("O13").Select 
Range(Selection, Selection.End(xlDown)).Select 
Selection.Copy Worksheets("Summary").Select 
Range("A4").Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 

我忘了說我是從3個不同的工作表粘貼和我在一個工作表中的數據後,我還需要第二粘貼的地方開始第一貼不放過。我一直在使用

Selection.End(xlDown).Select 
ActiveCell.Offset(1, 0).Select 
+1

節目,請你嘗試過什麼到目前爲止 –

+0

非常強力類型代碼:。 工作表( 「C_Plan」)選擇 範圍( 「O13」)選擇 範圍(選擇,Selection.End(xlDown) 。)。選擇 Selection.Copy 工作表( 「摘要」)選擇 範圍( 「A4」)選擇 Selection.PasteSpecial粘貼:= xlPasteValues,操作:= xlNone,SkipBlanks _ :=假,移調:=假 我忘了提及我從3個不同的工作表中粘貼,當我在一個工作表中選擇數據後,我需要第二個粘貼來開始第一個粘貼停止的地方。我一直在使用 Selection.End(xlDown).Select ActiveCell.Offset(1,0).Select – user3375968

回答

0

試試這個,告訴我,如果這對你的作品

Sub Test() 
Dim R As Integer 
Dim P As Integer 
Dim ws2 As Worksheet 
Dim ws As Worksheet 
Set ws2 = Worksheets("Sheet2") 
Set ws = Worksheets("Sheet1") 
ws.Select 
R = Range("O65536").End(xlUp).Row 
ws.Range(Cells(1, 15), Cells(R, 15)).Select 
Selection.Copy 

ws2.Select 
P = Range("A65536").End(xlUp).Row 
ws2.Cells(P, 1).Offset(1, 0).Select 
Selection.PasteSpecial 

End Sub 

這將選擇在O列所有單元格一個值,並將其複製,然後粘貼到工作表「摘要」中的數據列A的最後一個單元格開始。

+0

我打算嘗試這兩個,一旦我有一分鐘玩,他們都看起來像我可以使用的代碼強制excel只看數據:) – user3375968

+0

我得到一個錯誤424「對象需要」 cPlan.Range(單元格(1,15),單元格(R,15))。Select.Copy 我改變顯然這些名字卻將它們定義爲相同的東西。編輯代碼 – user3375968

+0

現在嘗試添加.offset(1,0).select,以便它不覆蓋最後一個值。希望它有效 – user3271518

0

假設你有你的塔的最頂端的電池存儲爲startCell as Range我會做這樣的事情:

dim endCell as Range 
dim colRange as Range 

set endCell = startCell ' Here's where you'll need startCell already! 
While endCell <> "" And endCell <> "0" 
    set endCell = endCell.Offset(1) ' Move down the column 
Loop 

set colRange = Range(startCell, endCell) 
' Now you can do with "colRange" as you please. Copy, paste etc. 
相關問題