每次运行宏时,无法将1列复制到右侧

问题描述 投票:0回答:1

我是VBA的新手,尝试从一个名为lookup xxx的选项卡中复制值(数据将始终在Column F中)并粘贴到关联的actuals xxx选项卡中。

我为大约10个不同的查找选项卡执行此操作。我的目标是在第一次运行宏时将Week 50201750粘贴到Column F中。

我第二次运行它,我想粘贴到column G,第三次,column H,等等;每次将数据保存在前面的列中。

内置的宏或Personal.xlsb!AllSheets更新查找选项卡上的数据,并更新周。这实际上是“复制并粘贴一列”问题。

我想要发生的是这样的:

  • 我第一次运行它时,actuals xxx选项卡上的列F填充了201750数据(来自lookup xxx标签)
  • 下次我运行时,column F保留201750G=201751数据。
  • 下次我运行它,F=201750, G=201751, H=201752数据
  • 等等...

实际发生的是:

  • 我第一次运行时,columns F上的Gactuals 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次后会发生的情况:

(点击图片查看完整版。)screenshot (edited by ashleedawg)

excel-vba vba excel
1个回答
0
投票

弄清楚我正在加倍工作。当我删除副本时,宏工作得很好。这是最终结果:

Sub ActualsAutomation()
'
' ActualsAutomation Macro
'

'
    Application.Run "PERSONAL.XLSB!AllSheets"

    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

    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

    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

    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

    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

    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

    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

    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

    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

    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

    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

    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

    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

谢谢你的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.