[算表] VBA转置贴上另存新档

楼主: ktll (浪迹天涯的旅人)   2020-09-20 23:57:54
软件:excel
版本:2016
原档:
https://imgur.com/JdfTA4n
想改成
https://imgur.com/6QTVThH
想把原档案转至后贴到另一个新档案,并且按照分公司名称存盘
有尝试爬文来修正,但一直失败...
遇到有合并的存储格无法抓取,也不知道怎么转置
想请教各位大大帮忙
Sub Macro1()
Dim rLastCell As Range
Dim strName As String
Dim lLoop As Long
Dim wbNew As Workbook
Dim cnt As Integer
With ThisWorkbook.Sheets(1)
Set rLastCell = .Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious)
For lLoop = 2 To rLastCell.Row
cnt = WorksheetFunction.CountIf(Range("c:c"), Range("c" & lLoop))
Set wbNew = Workbooks.Add
试跑到这边都是正常的,但后续就不知道如何处理了
谢谢
作者: soyoso (我是耀宗)   2020-09-21 00:51:00
有写新增活页簿,新增时作用会在新活页簿上,所以range如要引用宏工作表内的储存格、范围、列或栏时要以.range内文宏来看,第二列range.autofilter,筛选第三栏,筛选值.range("c" & lLoop)复制范围range.copy,于新增工作表wbnew,工作表内range.pastespecial transpose为真lLoop累加cnt减1,lLoop = lLoop + cnt -1另存workbook.saveas
楼主: ktll (浪迹天涯的旅人)   2020-09-21 05:45:00
https://imgur.com/oei0WYB不好意思,上图是您上次教我的部分,但我不知道该从哪改起..对VBA还不太熟悉...
作者: soyoso (我是耀宗)   2020-09-21 17:28:00
1、宏内有range.copy(这方面保留),但不要destination以range.pastespecial transpose为真来转置2、1:1方面标题有二列就改为1:23、回文写到lLoop累加cnt减1方面,宏内也有写到(这方面也保留)4、宏也有写到range.autofit和save方面(这方面也无不用动)就改或新增1,2所提的
楼主: ktll (浪迹天涯的旅人)   2020-09-21 23:19:00
https://imgur.com/vgcK6g8不知道这样改是否正确? 但执行的时候出现图片上的错误
作者: soyoso (我是耀宗)   2020-09-22 07:21:00
range.copy后面的下底线是要和下行语法做连接的,但range.copy和range.pastespecial连接并非正确的语法,下底线要删除9/21 00:51 range如要引用宏工作表内的储存格、范围、列或栏时要以.range,range.pastespecial是要贴到新增的活页簿内,所以是以新增活页簿变量vbnew.工作表.range.pastespecialrange也没有指定储存格字串位址,range(..)括号内以储存格字串位址参数名称是transpose,宏内少e
楼主: ktll (浪迹天涯的旅人)   2020-09-24 22:53:00
感谢教学~已经先用别的方式进行了 后续会再来研究

Links booklink

Contact Us: admin [ a t ] ucptt.com