Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 复印及;将一张图纸中的数据转置&;创建新工作表,然后将数据粘贴到新工作表中_Excel_Vba - Fatal编程技术网

Excel 复印及;将一张图纸中的数据转置&;创建新工作表,然后将数据粘贴到新工作表中

Excel 复印及;将一张图纸中的数据转置&;创建新工作表,然后将数据粘贴到新工作表中,excel,vba,Excel,Vba,我有特定格式的数据&我一直在尝试复制行值,并使用VBA转置它们 我可以让它在一张纸上工作,但不能在多张纸上工作 用于单个工作表的代码 Sub transform() Dim wss As Worksheet Dim rng As Range Dim i As Integer Dim j As Integer Set wb = ThisWorkbook Set ws = wb.Worksheets("Sheet2") Cells.MergeCells = Fa

我有特定格式的数据&我一直在尝试复制行值,并使用VBA转置它们

我可以让它在一张纸上工作,但不能在多张纸上工作

用于单个工作表的代码

Sub transform()


Dim wss As Worksheet
Dim rng As Range
Dim i As Integer
Dim j As Integer
Set wb = ThisWorkbook
Set ws = wb.Worksheets("Sheet2")







Cells.MergeCells = False

ws.Range(ws.Cells(1, 271), ws.Cells(9999, 350)).ClearFormats

'Loop to transpose all data

For i = 2 To 62
    ws("Sheet1").Range(Cells(i, 1), Cells(i, 215)).Copy
    ws.Cells(5, i).PasteSpecial transpose:=True
Next i

end sub
我已经完成了这一步,为第二部分的内容编写了代码

For Each wss In ws
        For i = 1 To 62
             ws.Range(Cells(i, 1), Cells(i, 215)).Copy
             Sheets.Add After:=ActiveSheet
             ws.Cells(5, i).PasteSpecial transpose:=True
        Next i
Next wss
现在,我想循环浏览工作簿中的所有工作表,并将每个工作表中的单元格复制和转换到自己的新工作表中。有人能提供一些指导吗?

我想这可能就是您要做的:

Dim sourceSheet As Worksheet
Dim targetSheet As Worksheet
Dim i As Integer

For Each sourceSheet In wb.Sheets
    ' Don't transpose transposed sheets
    If Left(sourceSheet.Name, 3) <> "TX_" Then
        ' Add the new sheet
        Set targetSheet = wb.Sheets.Add After:=sourceSheet
        ' Flag the name so it won't get transposed
        targetSheet.Name = "TX_" & sourceSheet.Name
        ' Copy source to target
        For i = 1 To 62
             sourceSheet.Range(sourceSheet.Cells(i, 1), sourceSheet.Cells(i, 215)).Copy
             targetSheet.Cells(5, i).PasteSpecial transpose:=True
        Next i

    End If

Next sourceSheet
Dim源表作为工作表
将目标工作表变暗为工作表
作为整数的Dim i
对于wb.Sheets中的每个源表
“不要转置转置的表格
如果左侧(sourceSheet.Name,3)“TX_u2;”,则
'添加新工作表
设置targetSheet=wb.Sheets.Add After:=sourceSheet
'标记名称,使其不会被转置
targetSheet.Name=“TX_216;”&sourceSheet.Name
'将源复制到目标
对于i=1到62
sourceSheet.Range(sourceSheet.Cells(i,1),sourceSheet.Cells(i,215)).Copy
targetSheet.Cells(5,i).paste特殊转置:=True
接下来我
如果结束
下一份资料表

此功能100%有效,谢谢!!!,我只做了一个小改动,那就是设置targetSheet=wb.Sheets.Add而不是后面的:=wssGreat!我很高兴你能纠正这个错误。我已经更新了答案中的代码。