2017-05-29 41 views
0
Rng1.Copy Destination:=Worksheets("RefindData").Range(Destination) 

哪裏Rng1將被複制到的數據的範圍和Destination當前單元格引用另一個範圍(延續B2VBA複製範圍中下一個空單元

該代碼將被稱爲多次。我怎樣才能改變這個,使目的地是同一列(例如列B),但行是下一個空單元格?

E.g所以在第一呼叫,B2起是其中的值被複制到,然後在下一呼叫的第一呼叫之後的下一空單元是其中第二呼叫應開始輸出其值。然後是第三個呼叫開始的下一個空單元格,以此類推。

我可以改變Destination變量只是陳述列字母,如果是這樣的:

Rng1.Copy Destination:=Worksheets("RefindData").Range(Destination & ???) 

沿着正確的臺詞是?

回答

1

你的意思是這樣嗎?

Sub Sample() 
    Dim rng1 As Range 
    Dim wsO As Worksheet 

    Set wsO = Worksheets("RefindData") 
    Set rng1 = Range("A1:A10") 

    rng1.Copy Destination:=wsO.Range("B" & _ 
            wsO.Range("B" & wsO.Rows.Count).End(xlUp).Row + 1) 
End Sub 

每次運行宏時,都會粘貼最後一行之後的下一個可用行。

+0

我得到'1004 - 申請中所定義或對象定義error'最後一行'Rng1.Copy目的地:= wsRefind.Range(目標&wsRefind.Range(目標&wsRefind.Rows.Count).END(xlUp)。行+ 1)'' – Aurelius

+0

昏暗wsRefined作爲Worksheet'和'設置wsRefind = wb.Worksheets( 「RefindData」)'也存在 – Aurelius

+1

什麼是'Destination'的值? –

2
Sub CopyPasteCells() 
Dim Rng1 As Range, Rng2 As Range, ws As Worksheet 

Set ws = Worksheets("RefindData") 
Set Rng1 = ws.Range("C2:C10") 'Copy range as you like 
Set Rng2 = ws.Range("B" & ws.Rows.Count).End(xlUp).Offset(1, 0) 'Paste range starting from B2 and then first empty cell 

Rng1.Copy Destination:=Rng2 'Copy/Paste 
End Sub 
+0

'65536' O_O ???當你有1048576行時會發生什麼? ;) –

+0

我會建議你不要硬編碼值。您可能希望看到[這](https://stackoverflow.com/questions/11169445/error-in-finding-last-used-cell-in-vba/11169920#11169920) –

+0

這僅僅是一個老習慣,你可以使用允許的最大行數作爲1048576 – Tehscript

2

您還可以嘗試下面的代碼。

假設:

  • 活動單元格是在柱中,其中要粘貼的結果(要粘貼在B列的結果 - 從乙柱>選擇單元[例如B2],
  • 第一行填充有標題,所以結果會被從第二行粘貼

代碼

Sub CutCopyPaste() 
    Dim lngCol As Long 
    Dim rngCopy As Range 

    Set rngCopy = Range("A1") 'The cell which ic copied 

    lngCol = Selection.Column 'active column where the results will be pasted 

    On Error Resume Next 
    rngCopy.Copy Cells(Cells(1, lngCol).End(xlDown).Row + 1, lngCol) 

    If Err.Number = 1004 Then 
     MsgBox "Be sure that active cell is in the column, where the results should be pasted!" & vbNewLine & vbNewLine & "Try again" 
     Err.Clear 
    End If 
End Sub 
相關問題