我是新來的,也是 vba 的新手。我正在嘗試根據選定的列復制行。
我使用 useform 從用戶那里獲取范圍,以將這些資料的詳細資訊復制到下一張表。
我已經撰寫了代碼來獲取范圍的地址(在 userfrom 上輸入)
現在,當我嘗試復制該行時,它只是復制了 S.no,沒有任何其他細節。
Sub copy_data()
If pass1 = 1 Then
Sheets("I yr").Range(cellFrom1 & ":" & cellTo1).Copy Destination:=Sheets("final").Range("B8:B37")
End If
If pass2 = 1 Then
Sheets("II yr").Range(cellFrom2 & ":" & cellTo2).Copy Destination:=Sheets("final").Range("B8:B37")
End If
If pass3 = 1 Then
Sheets("III yr").Range(cellFrom3 & ":" & cellTo3).Copy Destination:=Sheets("final").Range("B8:B37")
End If
If pass4 = 1 Then
Sheets("IV yr").Range(cellFrom4 & ":" & cellTo4).Copy Destination:=Sheets("final").Range("B8:B37")
End If
End Sub
這里
cellFrom1 = Sheets("I yr").Range("N4").Value //N4 will have from address of the s.no selected
cellTo1 = Sheets("I yr").Range("O4").Value //O4 will to address of the s.no selected
我試過這段代碼,但它只是復制 S.No,而不是那些受人尊敬的細節
資料格式會像
| 編號 | 注冊號 | 姓名 | 年 |
|---|---|---|---|
| 1個 | 921 | 啊啊 | 二 |
| 2個 | 922 | bbb | 二 |
| 3個 | 923 | 抄送 | 二 |
| 4個 | 924 | DDD | 二 |
| 5個 | 925 | eee | 二 |
| ... |
如果我給出 3 -5 的范圍,它應該像這樣復制資料
| 編號 | 注冊號 | 姓名 | 年 |
|---|---|---|---|
| 3個 | 923 | 抄送 | 二 |
| 4個 | 924 | DDD | 二 |
| 5個 | 925 | eee | 二 |
uj5u.com熱心網友回復:
如果您嘗試復制$A$2到$A$20,您只會得到 column A。
范圍必須是$A$2-$D$20這是你的問題嗎?
您也只粘貼到一列(列B)。
嘗試粘貼到B8:E37示例中(或僅指定粘貼的起始區域Range("B8"))
這是您的代碼看起來如何更新。
您的cellFrom1和cellTo1包含正確的列非常重要。示例:cellFrom1 =$A$1和 cellTo1 =$D$4
Sub copy_data()
If pass1 = 1 Then
Sheets("I yr").Range(cellFrom1 & ":" & cellTo1).Copy Destination:=Sheets("final").Range("B8")
End If
If pass2 = 1 Then
Sheets("II yr").Range(cellFrom2 & ":" & cellTo2).Copy Destination:=Sheets("final").Range("B8")
End If
If pass3 = 1 Then
Sheets("III yr").Range(cellFrom3 & ":" & cellTo3).Copy Destination:=Sheets("final").Range("B8")
End If
If pass4 = 1 Then
Sheets("IV yr").Range(cellFrom4 & ":" & cellTo4).Copy Destination:=Sheets("final").Range("B8")
End If
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/534668.html
標籤:擅长VBA
上一篇:如何將以下范圍轉換為文本?
