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 転置:=True。

コピーされたすべての値を貼り付けるにはどうすればよいですか? 値が列 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 に答える