根据单元格值选择工作表

时间:2019-12-04 03:14:10

标签: excel vba

使用Excel 365。 我正在尝试根据ThisWorkbook工作表数据(单元格K4)中的小组人数,以“ Tournament Master Format 36.xls”(所有选项卡为数字,根据括号中的小组人数)从模板中复制工作表。

Sub CopyPaste()

    Dim Size As String

    Size = "ThisWorkbook.Sheets("Data").Range("K4")"

    Workbooks("Tournament Master Format 36.xls").Sheets(Size).Range("A1:AO311").Copy _
    ThisWorkbook.Sheets("Sheet4").Range("A1") 

End Sub

更新代码:

Sub CopyPaste()

Dim Size As String
Dim i As Integer
Dim SheetNum As String
Dim ws As Worksheet

    Workbooks("Scheduling Test Template.xlsx").Sheets("Data").Activate

For i = 2 To 10
    'Size = Cells(i, 11).Value
    Size = CStr(Workbooks("Scheduling Test 
    Template.xlsx").Sheets("Data").Range("K4").Value)

    'SheetNum = CStr(Cells(i, 10)) + " & Under"
    SheetNum = i
    Debug.Print Size

    If Size > 0 Then
        Set ws = 

    ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets
    (ThisWorkbook.Sheets.Count))
        ws.Name = SheetNum

        Workbooks("Tournament Master Format 36.xls").Sheets(Size)
        .Range("A1:AO311").Copy ThisWorkbook.Sheets(SheetNum).Range ("A1")
    End If
Next i

End Sub

1 个答案:

答案 0 :(得分:3)

我没有评论,因为我没有足够的声誉,但是请尝试使用Debug.Print Size,看看这是否是Size的正确值。如果它是正确的值,请检查是否存在与Size值相同的图纸。

此外,我建议您不要使用.Activate,而应使用:

Size = Workbooks("Scheduling Test Template.xlsx").Sheets("Data").Range("K4").Value

Ps。如果您在此答案下发表评论,我将能够与您和braX进行对话。