首页 文章

如何使用vba选择粘贴范围

提问于
浏览
0

我编写了一些代码来选择特定行并使用paste-special属性以列方式粘贴它 . 它正常工作我的代码是:

lngRow = Me.TextBox4.Value
strCol = Me.TextBox5.Value
Set rng = Range("A:A").Find(What:=lngRow, LookIn:=xlValues, LookAt:=xlWhole)
If rng Is Nothing Then
MsgBox "Value not found in row 1", vbExclamation
Else
 Range(rng, rng.End(xlToRight)).Copy
 Range("A1:E3").Columns(strCol).Offset(, 1).PasteSpecial Transpose:=True
 Range("A1:E3").Rows(1).Copy
 Range("A1:E3").Columns(strCol).PasteSpecial Transpose:=True
endif

这里的问题是我使用Range(rng,rng.End(xlToRight)) . 复制复制值和粘贴我使用Range(“A1:E3”) . 列(strCol).Offset(,1) . PasteSpecial Transpose:= True .

如何粘贴复制的所有值?因为如果值在列F中,则此宏不会粘贴这些值 .

1 回答

  • 1

    此代码将粘贴整行,如果找到,则从第1行开始转置到给定的col .

    如果它必须从不同的行或列开始,你应该能够适应它 .

    lngRow = Me.TextBox4.Value
    strCol = Me.TextBox5.Value
    
    Set rng = Range("A:A").Find(What:=lngRow, LookIn:=xlValues, LookAt:=xlWhole)
    If rng Is Nothing Then
    MsgBox "Value not found in row 1", vbExclamation
    Else
     Range(Rng, Rng.End(xlToRight)).Copy
     Cells(1, strCol).PasteSpecial Transpose:=True
    End If
    

相关问题