Database 使用VBA循环将数据从一张图纸复制到另一张图纸
我是VBA编程的新手,所以我需要你的帮助。我必须创建一个宏,将数据从一张图纸复制到另一张图纸。因此,我所做的是记录一个宏(使用宏记录器)到我必须复制/粘贴的步骤。现在我必须创建一个循环来处理我需要的所有信息 以下是包含数据的工作表的屏幕截图: 以下是应粘贴数据的工作表的屏幕截图: 让我们来谈谈我的报告中包含的数据。我有我公司服务的国家的月度报告。每个月的每一天我都有一些预测,这些预测应该上传到我们的数据库中 以下是我已经拥有的代码:Database 使用VBA循环将数据从一张图纸复制到另一张图纸,database,vba,loops,for-loop,Database,Vba,Loops,For Loop,我是VBA编程的新手,所以我需要你的帮助。我必须创建一个宏,将数据从一张图纸复制到另一张图纸。因此,我所做的是记录一个宏(使用宏记录器)到我必须复制/粘贴的步骤。现在我必须创建一个循环来处理我需要的所有信息 以下是包含数据的工作表的屏幕截图: 以下是应粘贴数据的工作表的屏幕截图: 让我们来谈谈我的报告中包含的数据。我有我公司服务的国家的月度报告。每个月的每一天我都有一些预测,这些预测应该上传到我们的数据库中 以下是我已经拥有的代码: Sub manual_upload() Shee
Sub manual_upload()
Sheets("Forecast").Select
Range("G1").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("Upload").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Forecast").Select
'ActiveWindow.ScrollColumn = 2
'ActiveWindow.ScrollColumn = 1
Range("C2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Upload").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
'Selection.AutoFill Destination:=Range("B2:B31")
'Range("B2:B31").Select
Sheets("Forecast").Select
Range("E2").Select
Selection.Copy
Sheets("Upload").Select
Range("C2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("b2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
'Selection.AutoFill Destination:=Range("C2:C31")
'Range("C2:C31").Select
Sheets("Forecast").Select
Range("B2").Select
Selection.Copy
Sheets("Upload").Select
Range("D2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("c2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
'Selection.AutoFill Destination:=Range("D2:D31")
'Range("D2:D31").Select
Range("E2").Select
Sheets("Forecast").Select
Range("G2").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("Upload").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Forecast").Select
Range("D2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Upload").Select
Range("F2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("F2:F31")
Range("F2:F31").Select
'next i
End Sub
我不知道如何开始循环。应添加哪些数据,如各种等。
我将感谢您的帮助。如果数据都在一张工作表中,这里有一个不使用VBA执行这些步骤的指南(如果数据在不同的工作表中,您可以使用具有相同结构的多个查询的合并): 1) 按Control+T选择数据并设置为表格: 2) 使用powerquery导入数据(excel 2016“从表格导入”选项位于“数据”选项卡中,在早期版本中,您需要安装powerquery加载项并使用“电源”选项卡)。此时将出现一个窗口,其中包含表格数据。然后,您将使用此数据视图 3) 通过高亮显示删除不需要的列,然后右键单击“删除” 4) 选择日期列并取消打印。您可以选择第一个日期列,然后按住shift键并选择最后一个日期列以高亮显示所有日期) 5) 双击列标题以重命名,例如属性->日期,值->预测,DB中的名称->国家 6) 检查数据类型是否正确 7) 通过拖动列以重新排列,将列重新排序以匹配所需的输出 8) 最后关闭并加载到工作表 9) 查看结果 10) 您可以将数据添加到源表中,然后单击查询上的刷新以更新所有内容。对图像中的不同表格表示歉意,因为此图像是稍后为回答问题而进行的编辑。在结果表中选择单元格时,将出现查询窗口,您将看到查询名称和绿色刷新箭头。单击此按钮可在源数据发生更改时进行更新
根据预测中的列数,我建议考虑使用Powerquery。基本步骤是:将源数据(如发布的图像1中的数据)设置为表,让powerquery选择该表(从表中查询),然后重命名要保留的列,删除不需要的列,突出显示所有日期列,并从“转换”选项卡(或右键单击)取消选择列。然后关闭并加载到工作表。您的解释是否中断?您没有解释如何在期望的结果中填充字段。什么是仪表板,预测?除此之外,这看起来像一个熔化过程。任何包含Python/R/SAS等程序/语言的数据集都可以进行相应的重塑。非常感谢您的帮助,但我需要创建一个宏,因为我将每月更改此数据。这意味着我将有几个月的天数减少。表将自动更新,创建的查询有一个小绿色箭头。当源表中有新数据时,单击箭头,所有内容都会更新。Y谢谢你,但假设我的老板想要一个宏:D:D:D