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)).Copy 来复制值和粘贴我使用 Range("A1:E3").Columns(strCol).Offset(, 1)。 PasteSpecial 转置:=真。

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

4

1 回答 1

1

此代码将从第 1 行开始粘贴整行(如果找到)转置到给定的列。

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

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
于 2012-09-27T09:36:25.427 回答