excel 复制特定行数据

sdnqo3pr  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(153)

我是新来的,也是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的|第二章|
| 五个|九二五|埃|第二章|

mftmpeh8

mftmpeh81#

如果您尝试将$A$2复制到$A$20,则只会得到A列。
范围必须是$A$2$D$20-这是您的问题吗?
您还将粘贴到一列中(B列)。
作为示例,尝试粘贴到B8:E37中(或仅指定粘贴的起始区域,如Range("B8")
下面是代码更新后的外观。
您的cellFrom1cellTo1包含正确的列非常重要。例如:单元格自1 = $A$1和单元格至1 = $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

相关问题