EXCEL VBA 列转行 原始数据如图,但是行数不固定,随时会更新,通过Vba能自动根据原始数

EXCEL VBA 列转行

原始数据如图,但是行数不固定,随时会更新,通过Vba能自动根据原始数据转换成列,数据见图。

这个用简单公式即可转置,哪用的着VBA

原则是能用公式就不用vba

列数只要最大值,也就是最大列数是多少就行

另外,你这是2张表,

养成好习惯,一张表一个,

别把什么的都堆在一张表里

看图1:表1(原始)

图2:表二(自动生成)

只要在表一输入数据,表二会自动生成

 

其实在表二中只有一个公式:A1:=INDIRECT("'表一 '!"&CHAR(ROW()+64)&COLUMN())

然后你可以任意横拉、竖拉

这样就会符合你的要求

 

追问

两个表分开,请问在表2中如何设定公式?

追答

上面不是说了?
表二中只有一个公式:A1:=INDIRECT("'表一 '!"&CHAR(ROW()+64)&COLUMN())
然后你可以任意横拉、竖拉,这样就会符合你的要求

难道你不会输入公式?
这样做:
表二中选中A1单元格,
然后键盘输入:=INDIRECT("'表一 '!"&CHAR(ROW()+64)&COLUMN())
,回车
接着你可以横竖拉到你需要的范围

追问

手机看不到图片,电脑可以看到了,很给力,谢谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-15
Sub Macro2()
Dim n%
n = Cells(Rows.Count, 1).End(xlUp).Row
    Range("A4:C" & n).Select
    Selection.Copy
    Range("e5").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
End Sub

相似回答