0
For i = 3 To 50
     If lngRow = Range("A" & i) Then
        Range("A1:EN3").Rows(i).Copy
        Range("A1:EN3").Columns(strCol).Offset(, 1).PasteSpecial Transpose:=True
        Range("A1:EN3").Rows(1).Copy
        Range("A1:EN3").Columns(strCol).PasteSpecial Transpose:=True

    Exit For
    End If
Next i

こんにちは私は行を選択して列に貼り付けるためのコードを書きましたが、それは正しく機能していますが、私の問題はここで範囲をRange( "a1:en3")として指定していますが、毎回これよりも多くの値になる可能性があります空白セルの前に列をコピーする方法のように、空白セルの前に行データをコピーすることができます。つまり、Range(rng、rng.End(xlDown))。Copyです。

4

1 に答える 1

0
Function firstblank()
   i=1
   While (worksheets("WORKSHEETNAMEHERE").cells(i,1).value<>"")
     i=i+1
   wend
   return i
End function

あなたの質問を完全には理解できませんが、転置された値を貼り付けるのは次のように簡単です。

Range("T5").Select 
Selection.PasteSpecial Transpose:=True

(値を書き込むために 1 つのセルよりも大きな範囲を定義しません。複数のセルを指定する場合、Excel では、書き込もうとしているものの正確な寸法がターゲットに必要になります)

于 2012-09-18T08:21:28.827 に答える