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

(我不会定义大于一个单元格的范围来写入值;如果您提供多个单元格,则 Excel 将要求您的目标具有您尝试写入的确切尺寸)

于 2012-09-18T08:21:28.827 回答