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