Excel 如何在下一行的每个单元格中继续循环?

Excel 如何在下一行的每个单元格中继续循环?,excel,vba,Excel,Vba,如下图所示,我有3张表,即:表“商店水果数据”、表(“月份”)和表(“产出”) 我正在尝试将数据从表“Shops Fiults data”复制到表(“月”)结构中的月(“输出”)结构中。我已经写了一个代码。然而,有了这段代码,我只能遍历第一行。我不明白,我怎样才能继续到下一排,直到最后一排。其次,我也不能将商店和水果的名称复制到表单(“输出”) 我已经在图纸输出表中手动复制了所需的结果,如下所示,在那里您可以看到我想要实现的目标。如果有人能带领我,那就太好了!多谢各位 表格(“商店水果数据”)

如下图所示,我有3张表,即:表“商店水果数据”、表(“月份”)和表(“产出”)

我正在尝试将数据从表“Shops Fiults data”复制到表(“月”)结构中的月(“输出”)结构中。我已经写了一个代码。然而,有了这段代码,我只能遍历第一行。我不明白,我怎样才能继续到下一排,直到最后一排。其次,我也不能将商店和水果的名称复制到表单(“输出”)

我已经在图纸输出表中手动复制了所需的结果,如下所示,在那里您可以看到我想要实现的目标。如果有人能带领我,那就太好了!多谢各位

表格(“商店水果数据”)

A. B C D E F G H 我 J K L M N O 1. 2021 2021 2021 2021 2021 2021 2021 2021 2021 2021 2021 2021 2. 商店 水果 量 简 功能电子块 破坏 四月 也许 六月 七月 AUG突击步枪 九月 十月 十一月 十二月 3. 沃尔玛 苹果 量 10 20 30 40 50 60 70 80 90 10 11 12 4. 沃尔玛 橙色 量 12 13 14 15 16 17 18 19 20 21 22 23 5. D-Mart 苹果 量 36 38 40 42 44 46 48 50 52 54 56 58
根据Tim Williams的观点,以下是取消激活数据的代码

Sub test()
    
    
        Sheets("Shops-Fruits Data").Range("Table10").Select
        ActiveWorkbook.Queries.Add Name:="Query", Formula:= _
            "let" & Chr(13) & "" & Chr(10) & "    Source = Excel.CurrentWorkbook(){[Name=""Table10""]}[Content]," & Chr(13) & "" & Chr(10) & "    #""Changed Type"" = Table.TransformColumnTypes(Source,{{""Shop"", type text}, {""Fruits"", type text}, {""Quantity"", type text}, {""JAN"", Int64.Type}, {""FEB"", Int64.Type}, {""MAR"", Int64.Type}, {""APR"", Int64.Type}, {""MAY"", Int64.Type}, {""JUN"", Int64.Type}, {""JUL"", Int64.Type}, " & _
            "{""AUG"", Int64.Type}, {""SEP"", Int64.Type}, {""OCT"", Int64.Type}, {""NOV"", Int64.Type}, {""DEC"", Int64.Type}})," & Chr(13) & "" & Chr(10) & "    #""Unpivoted Other Columns"" = Table.UnpivotOtherColumns(#""Changed Type"", {""Shop"", ""Fruits"", ""Quantity""}, ""Attribute"", ""Value"")" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Unpivoted Other Columns"""
    
        With Sheets("Output").ListObjects.Add(SourceType:=0, Source:= _
            "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Query"";Extended Properties=""""" _
            , Destination:=Sheets("Output").Range("$A$1")).QueryTable
            .CommandType = xlCmdSql
            .CommandText = Array("SELECT * FROM [Query]")
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .ListObject.DisplayName = "Table_10"
            .Refresh BackgroundQuery:=False
        End With
        Range("F2").Select
    End Sub

下面是一个基本的depivot:

Sub-Depivot()
暗arr,ARROT,r长,c长,溃败长
arr=工作表(“数据”).Range(“a1”).CurrentRegion.Value”将数据输入到数组
ReDim arrOut(1到UBound(arr,1)*UBound(arr,2),1到5)“调整输出阵列的大小(大约大小)
'循环输入数组
对于r=3至UBound(arr,1)
对于c=4至UBound(arr,2)
路由=路由+1
arrOut(rOut,1)=arr(r,1)
arrOut(rOut,2)=arr(r,2)
arrOut(rOut,3)=arr(1,c)
arrOut(rOut,4)=arr(2,c)
arrOut(rOut,5)=arr(r,c)
下一个c
下一个r
'将输出放在工作表上
工作表(“Depivot”).Range(“A1”).Resize(rOut,5)。Value=arrOut
端接头

不清楚“月份”表的目的是什么。您的输出看起来像是“商店水果数据”的直接“depivot”@Tim Williams“月份”表的目的只是从商店水果数据表中查找相应的月份数据。但是,月份在您的数据表中吗?@Tim Williams Nah,我创建它只是为了在“商店水果数据”表中搜索月份。但是,我认为你有一个正确的观点,我看了两遍,它看起来像一张“商店水果数据”的“Unpivot”。然后,我录制了一个宏,我得到了我想要的!只有这一年我会手动过去!谢谢你的提示!致以最良好的祝愿!:)太好了!谢谢!祝你玩得愉快!:)