首页 > 解决方案 > 使用变量 Sheets(Array(Variable)) 复制工作表数组。复制

问题描述

我在创建一个字符串以用作变量以在每次运行时复制不同的选项卡时遇到了真正的麻烦,具体取决于勾选了哪些单元格。

我的代码循环遍历一行单元格和带有刻度 (P) 的任何内容,然后添加到数组字符串中。字符串中生成的文本与硬编码等效文本相同,但是当我尝试使用字符串复制选项卡时出现运行时错误 9。“rw”被填充在之前调用这个宏的宏中。

我的代码是

public rw, col  as long
public add      as string
public add1     as variable

sub create_pack

    Application.DisplayAlerts = False

    Set wb1 = ActiveWorkbook
    
    col1 = 8
    add = ""
    Do Until col1 > 17
        If sh00.Cells(rw, col1) = "P" Then
            If add = "" Then
                add = """Pack " & col1 - 7 & """"
            Else
                add = add & ", ""Pack " & col1 - 7 & """"
            End If
        End If
        col1 = col1 + 1
    Loop

    add1 = Array(add)
    wb1.Sheets(add1).Copy
    Set wb2 = ActiveWorkbook

在此处输入图像描述

感激地收到任何帮助,因为我完全被这个难住了。谢谢你。

标签: arraysvariablescopy

解决方案


我通过逐个标签复制来修复它。希望这对后来的观众有所帮助。

Sub create_pack()

Application.DisplayAlerts = False

Set wb1 = ActiveWorkbook

col = 8

Set wb1 = ActiveWorkbook
Set wb2 = Workbooks.add
wb1.Activate

Do Until col > 17
    If sh00.Cells(rw, col) = "P" Then wb1.Sheets("Pack " & col - 7).Copy After:=wb2.Sheets(wb2.Sheets.Count)
    col = col + 1
Loop

wb2.Activate
wb2.Sheets("Sheet1").Delete    
wb2.Close False

wb1.Activate

结束子


推荐阅读