我是VBA的新用户,尝试从一个名为lookup xxx
的标签中复制值(数据将始终位于Column F
中)并粘贴到关联的actuals xxx
标签中。
我为大约10个不同的查找标签执行此操作。我的目标是在第一次运行宏时将Week 50
或201750
粘贴到Column F
。
第二次运行时,我想粘贴到column G
,第三次粘贴到column H
,依此类推;每次都将数据保存在前面的列中。
内置宏,或Personal.xlsb!AllSheets
更新查找选项卡上的数据,并更新周数。这实际上是一个"复制并粘贴到一列"题。
我想要发生的是:
我第一次运行时,actuals xxx
标签上的列F填充了201750
数据(来自lookup xxx
标签)
下次运行时,column F
会保留201750
和G=201751
数据。
F=201750, G=201751, H=201752
数据实际发生的事情是:
第一次运行时,columns F
上的G
和actuals xxx
都填充了201750
个数据。
下次我运行时,F=201751, G=201750, and H=201751
。
下次我运行时,F=201750, G=201751, H=201752, I=201752.
以下是我目前正在使用的代码:
Sub ActualsAutomation()
'
' ActualsAutomation Macro
'
'
Application.Run "PERSONAL.XLSB!AllSheets"
Sheets("SS Actuals").Range("F3:F500").Value = Sheets("SS Lookup").Range("F1:F498").Value
Dim c As Long
c = Sheets("SS Actuals").Cells(3, Columns.Count).End(xlToLeft).Column + 1
Sheets("SS Actuals").Cells(3, c).Resize(498).Value = Sheets("SS Lookup").Range("F1:F498").Value
Sheets("All Actuals").Range("F3:F500").Value = Sheets("All Lookup").Range("F1:F498").Value
c = Sheets("All Actuals").Cells(3, Columns.Count).End(xlToLeft).Column + 1
Sheets("All Actuals").Cells(3, c).Resize(498).Value = Sheets("All Lookup").Range("F1:F498").Value
Sheets("Base Specialties Actuals").Range("F3:F500").Value = Sheets("Base Specialties Lookup").Range("F1:F498").Value
c = Sheets("Base Specialties Actuals").Cells(3, Columns.Count).End(xlToLeft).Column + 1
Sheets("Base Specialties Actuals").Cells(3, c).Resize(498).Value = Sheets("Base Specialties Lookup").Range("F1:F498").Value
Sheets("Combat Actuals").Range("F3:F500").Value = Sheets("Combat Lookup").Range("F1:F498").Value
c = Sheets("Combat Actuals").Cells(3, Columns.Count).End(xlToLeft).Column + 1
Sheets("Combat Actuals").Cells(3, c).Resize(498).Value = Sheets("Combat Lookup").Range("F1:F498").Value
Sheets("Great Value Actuals").Range("F3:F500").Value = Sheets("Great Value Lookup").Range("F1:F498").Value
c = Sheets("Great Value Actuals").Cells(3, Columns.Count).End(xlToLeft).Column + 1
Sheets("Great Value Actuals").Cells(3, c).Resize(498).Value = Sheets("Great Value Lookup").Range("F1:F498").Value
Sheets("Persil Actuals").Range("F3:F500").Value = Sheets("Persil Lookup").Range("F1:F498").Value
c = Sheets("Persil Actuals").Cells(3, Columns.Count).End(xlToLeft).Column + 1
Sheets("Persil Actuals").Cells(3, c).Resize(498).Value = Sheets("Persil Lookup").Range("F1:F498").Value
Sheets("Purex Actuals").Range("F3:F500").Value = Sheets("Purex Lookup").Range("F1:F498").Value
c = Sheets("Purex Actuals").Cells(3, Columns.Count).End(xlToLeft).Column + 1
Sheets("Purex Actuals").Cells(3, c).Resize(498).Value = Sheets("Purex Lookup").Range("F1:F498").Value
Sheets("Renuzit Actuals").Range("F3:F500").Value = Sheets("Renuzit Lookup").Range("F1:F498").Value
c = Sheets("Renuzit Actuals").Cells(3, Columns.Count).End(xlToLeft).Column + 1
Sheets("Renuzit Actuals").Cells(3, c).Resize(498).Value = Sheets("Renuzit Lookup").Range("F1:F498").Value
Sheets("Snuggle Actuals").Range("F3:F500").Value = Sheets("Snuggle Lookup").Range("F1:F498").Value
c = Sheets("Snuggle Actuals").Cells(3, Columns.Count).End(xlToLeft).Column + 1
Sheets("Snuggle Actuals").Cells(3, c).Resize(498).Value = Sheets("Snuggle Lookup").Range("F1:F498").Value
Sheets("Sun Cuddle Soft Actuals").Range("F3:F500").Value = Sheets("Sun Cuddle Soft Lookup").Range("F1:F498").Value
c = Sheets("Sun Cuddle Soft Actuals").Cells(3, Columns.Count).End(xlToLeft).Column + 1
Sheets("Sun Cuddle Soft Actuals").Cells(3, c).Resize(498).Value = Sheets("Sun Cuddle Soft Lookup").Range("F1:F498").Value
Sheets("Sun Actuals").Range("F3:F500").Value = Sheets("Sun Lookup").Range("F1:F498").Value
c = Sheets("Sun Actuals").Cells(3, Columns.Count).End(xlToLeft).Column + 1
Sheets("Sun Actuals").Cells(3, c).Resize(498).Value = Sheets("Sun Lookup").Range("F1:F498").Value
Sheets("Surf Actuals").Range("F3:F500").Value = Sheets("Surf Lookup").Range("F1:F498").Value
c = Sheets("Surf Actuals").Cells(3, Columns.Count).End(xlToLeft).Column + 1
Sheets("Surf Actuals").Cells(3, c).Resize(498).Value = Sheets("Surf Lookup").Range("F1:F498").Value
Sheets("Uno Dos Tres Actuals").Range("F3:F500").Value = Sheets("Uno Dos Tres Lookup").Range("F1:F498").Value
c = Sheets("Uno Dos Tres Actuals").Cells(3, Columns.Count).End(xlToLeft).Column + 1
Sheets("Uno Dos Tres Actuals").Cells(3, c).Resize(498).Value = Sheets("Uno Dos Tres Lookup").Range("F1:F498").Value
End Sub
这是我运行宏3次后会发生什么的图片:
答案 0 :(得分:0)
想通了我正在加倍工作。当我删除副本时,宏工作得很好。这是最终结果:
cursor.execute("SELECT * FROM TABLE1;")
data_from_db = cursor.fetchall()
processed_data = filter(lambda s: 'abc' in s.field1 or s.StartTime >= start_date_time, data_from_db)
感谢您的帮助!