簡體   English   中英

使用VBA自動將一系列數據從一張紙傳輸到另一張紙

[英]Automatically transfering a range of data from one sheet to another using VBA

我正在嘗試從sheet1復制數據(區域) 然后使用按鈕將其粘貼到sheet2 單擊按鈕后,sheet1上的原始數據在傳輸到sheet2后將被刪除。

我不斷

錯誤13:類型不匹配

在線Zone = Range("A2:A20").Value

我可以使用此代碼來傳輸多行數據嗎?如果是,我在代碼中犯了什么錯誤?

Private Sub CommandButton1_Click()
    Dim Zone As Integer
    Worksheets("sheet1").Select
    Zone = Range("A2:A20").Value
    Worksheets("sheet2").Select
    Worksheets("sheet2").Range("B1").Select

    If Worksheets("sheet2").Range("B1").Offset(1, 0) <> "" Then
        Worksheets("sheet2").Range("B1").End(xlDown).Select
    End If

    ActiveCell.Offset(1, 0).Select
    ActiveCell.Value = Zone
    Worksheets("sheet1").Select
    Worksheets("sheet1").Range("A2").ClearContents
End Sub

您正在嘗試將范圍應用於整數

Dim Zone As Integer
Zone = Range("A2:A20").Value

Dim Zone As Range
Set Zone = Range("A2:A20")

也許是這樣的嗎? 請注意,無需使用.Select即可完成詢問。


Option Explicit

Sub Test()

Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets("Sheet1")
Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Sheets("Sheet2")

Dim LR As Long, cRange As Range '(copy Range)
LR = ws2.Range("B" & ws2.Rows.Count).End(xlUp).Offset(1).Row
Set cRange = ws1.Range("A1:A20")

If ws2.Range("B2") <> "" Then
    ws2.Range("B" & LR).Resize(cRange.Rows.Count, cRange.Columns.Count).Value = cRange.Value
    ws1.Range("A2").ClearContents
End If

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM