VimIy微民网,让世界倾听微民的声音! 设为首页 | 加入收藏 | 网站地图
当前位置:主页 > 恶搞 >

[我知道你们最专业] 求懂EXCEL的VBA的高手来帮个忙,露珠要转置1000+次。。。

时间:2012-09-07 21:56 来源:www.vimiy.com 作者:编辑 点击:

就是把sheet2的A1-A4 复制、转置选择性粘贴到sheet1的B2-E2,然后删除sheet2的A1-A4
    
    然后再接着把sheet2的A5-A8 复制、转置选择性粘贴到sheet1的B3-E3,然后删除sheet2的A5-A8
    
    然后一直做下去   
    
    下面是录制的第一步的宏,不会修改为自动往下走啊,急求高手支招 或者有没更简单点的方法
    
    Sub Macro5()
    '
    ' Macro5 Macro
    '
    
    '
     Sheets("Sheet2").Select
     Range("A1:A4").Select
     Selection.Copy
     Sheets("Sheet1").Select
     Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
     False, Transpose:=True
     Sheets("Sheet2").Select
     Application.CutCopyMode = False
     Selection.ClearContents
    End Sub挽尊一下,急求高手!
    sheet的B2=sheet2!$A1 B3=sheet2!$A5
    shift选中两个 然后往下拉 其余列同理 然后吧sheet2的删掉
    
    
    sheet的B2=sheet2!$A1 B3=sheet2!$A5
    shift选中两个 然后往下拉 其余列同理 然后吧sheet2的删掉
    
    谢谢,不行的,下拉完B4就变成=Sheet2!$A3 了
    
    而且把sheet2的删掉后sheet1相对应的就变成0额
    
    包括使用转置公式 TRANSPOSE 之后下拉也是一样的结果既然是VBA, 用While循环啊.....b2=INDIRECT("Sheet2!A"&(ROW($B2)-2)*4+1)
    c2=INDIRECT("Sheet2!A"&(ROW($B2)-2)*4+2)
    d2=INDIRECT("Sheet2!A"&(ROW($B2)-2)*4+3)
    e2=INDIRECT("Sheet2!A"&(ROW($B2)-2)*4+4)
    b3到e3,把上面的公式复制下来即可
    
    那个 (ROW($B2)-2)*4+1是确定行号的,前面的"Sheet2!A"是确定列的
    
    
    
    既然是VBA, 用While循环啊.....
    
    b2=INDIRECT("Sheet2!A"&(ROW($B2)-2)*4+1)
    c2=INDIRECT("Sheet2!A"&(ROW($B2)-2)*4+2)
    d2=INDIRECT("Sheet2!A"&(ROW($B2)-2)*4+3)
    e2=INDIRECT("Sheet2!A"&(ROW($B2)-2)*4+4)
    b3到e3,把上面的公式复制下来即可
    
    那个 (ROW($B2)-2)*4+1是确定行号的,前面的"Sheet2!A"是确定列的
    
    
    
    搞懂了,研究透了,谢谢,高中学过的,N年没用屁都不懂了。
    
    话说&之前要加引号 之后不用加么用相对引用。
    
    貌似楼上已给出方案了。 Post by bushzhengwei (2012-09-05 14:46)
    
    加引号是按字符处理的,不加引号是按公式处理的
    后面不加的部分表示按公式计算值后再与前面字符相加
    
    加引号是按字符处理的,不加引号是按公式处理的
    后面不加的部分表示按公式计算值后再与前面字符相加
    
    谢谢
    
    这个方法比较简单,但是源数据就无法删除了,所以假如能有VBA用转置的话更好了

关于网站 | 网站声明 | 用户反馈 | 合作伙伴 | 联系我们
Copyright © 2012年2月8日