簡體   English   中英

來自另一張紙的VBA復制范圍

[英]VBA copy range from another sheet

我知道這可能是非常適度的東西。 我一直在為自己正在從事的項目自學VBA,可以使用一些指導。 將確保將正確答案歸功於此人。

我目前知道基本的c ++

我試圖建立一個宏來執行此操作:

  1. 從表格(A2)的頂部開始-取該值
  2. 將其與ActiveCell的值進行比較
  3. 向下遍歷A列,一旦找到唯一值...
  4. 記住那個細胞
  5. 移至3列以上
  6. 跟隨超鏈接到新工作表中的范圍
  7. 返回到步驟4中的單元格
  8. 插入復制的范圍,然后將剩余的圖紙向下移動
  9. 重復工作表(我還沒有嘗試實現這一部分)

到目前為止,這是我寫的內容:

Sub Test()
    Dim CellValue As Integer

    Range("A2").Select
    CellValue = Range("A2").Value

    While Selection.Value <> ActiveCell.Value
    ' If CellValue = ActiveCell.Value Then
        ActiveCell.Offset(1, 0).Select
    Wend

    Dim SaveLine As Range
    SaveLine = ActiveCell
    ActiveCell = ActiveCell.Offset(0, 3)
    ActiveCell.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    Selection.Copy
    ActiveCell = SaveLine
    Selection.Insert Shift:=xlDown
End Sub

我遇到兩個錯誤:

  1. 溢出錯誤@ CellValue = Range("A2).Value
  2. 運行時錯誤' SaveLine = ActiveCell未設置對象變量或With塊變量@ SaveLine = ActiveCell

任何指導(甚至是部分指導)都應受到贊賞。

對於第1點。Dan Wagner已回復了評論。 對於第2點,您可能要寫:

Set SaveLine = ActiveCell

默認情況下, X = Y表示Let X = Y ,這不適用於VBA中的對象(在創建對象后,將引用這些對象而不是對其進行復制)。

暫無
暫無

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

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