我是新来的,也是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。不,没有那么尊重细节
数据格式将类似于
| S.no | 注册号|名称名称名称|年份|
| - -|- -|- -|- -|
| 一个|九二一|美国汽车协会|第二章|
| 2个|九二二|bbb型|第二章|
| 三个|九二三|ccc格式|第二章|
| 四个|九二四|ddd的|第二章|
| 五个|九二五|埃|第二章|
| 一个人。||||
如果我给出的范围是3 - 5,则应复制如下数据
| S.no | 注册号|名称名称名称|年份|
| - -|- -|- -|- -|
| 三个|九二三|ccc格式|第二章|
| 四个|九二四|ddd的|第二章|
| 五个|九二五|埃|第二章|
1条答案
按热度按时间mftmpeh81#
如果您尝试将
$A$2
复制到$A$20
,则只会得到A
列。范围必须是
$A$2
到$D$20
-这是您的问题吗?您还将粘贴到一列中(
B
列)。作为示例,尝试粘贴到
B8:E37
中(或仅指定粘贴的起始区域,如Range("B8")
)下面是代码更新后的外观。
您的
cellFrom1
和cellTo1
包含正确的列非常重要。例如:单元格自1 =$A$1
和单元格至1 =$D$4