如何使用vba选择粘贴范围

时间:2012-09-27 08:30:57

标签: excel excel-vba vba

我编写了一些代码,用于选择特定行并使用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

这里的问题是我正在使用     范围(rng,rng.End(xlToRight))。复制 复制值 并且用于粘贴我使用Range(“A1:E3”)。列(strCol).Offset(,1).PasteSpecial Transpose:= True。

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

1 个答案:

答案 0 :(得分: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