【问题标题】:vba macro copies all charts twice instead of oncevba 宏将所有图表复制两次而不是一次
【发布时间】:2020-01-20 00:31:48
【问题描述】:

这个 vba 宏将所有图表复制到一个临时表,它运行良好,但它似乎将每个图表复制两次而不是一次。如何修改代码使其不重复每个图表?

Sub macro1()

Dim i As Long, j As Long, k As Long
Dim adH As Long
Dim Rng As Range
Dim FilePath As String: FilePath = ThisWorkbook.Path & "\"
Dim sht As Worksheet, shtSource As Worksheet, wk As Worksheet
'===================================================================
'===================================================================
Sheets.Add After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
ActiveSheet.Name = "ALL"
Set sht = ActiveSheet
'===================================================================
Application.ScreenUpdating = False
'===================================================================
'Excluding fixed tab, copying all charts from all tabs to ALL
For Each wk In Worksheets
    If wk.Name <> "fixed" Then
        Application.DisplayAlerts = False
            j = wk.ChartObjects.Count
                For i = 1 To j
                    wk.ChartObjects(i).Activate
                    ActiveChart.ChartArea.Copy
                    sht.Select
                    ActiveSheet.Paste
                    sht.Range("A" & 1 + i & "").Select
                 Next i
        Application.DisplayAlerts = True
    End If
Next

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您正在循环浏览每个工作表,包括刚刚添加图表的新工作表。这是你重复的原因。您需要从循环中排除新添加的工作表...

    For Each wk In Worksheets
        If wk.Name <> "fixed" and wk.Name <> "ALL" Then
            Application.DisplayAlerts = False
                j = wk.ChartObjects.Count
                    For i = 1 To j
                        wk.ChartObjects(i).Activate
                        ActiveChart.ChartArea.Copy
                        sht.Select
                        ActiveSheet.Paste
                        sht.Range("A" & 1 + i & "").Select
                     Next i
            Application.DisplayAlerts = True
        End If
    Next
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      • 1970-01-01
      相关资源
      最近更新 更多