复制并粘贴到使用相同VBA代码

时间:2018-02-28 16:36:31

标签: excel excel-vba vba

我无法在此处或互联网上的其他地方找到此问题的答案!所以请帮助我:

目的

1)我不想创建一个我命名的新工作表,2)此后我不想将特定的单元格复制到这个新创建的工作表中。

背景

我已经看过数千个视频,用于解释创建新工作表的代码,并在我在某个单元格中编写的内容后命名,到目前为止一切顺利。我还看到了数千个将值复制到现有工作表中的数据,很不错。但我无法找到任何人描述如何在特定单元格中创建一个名为Idefine的新工作表,然后将值复制到其中;当我更改特定单元格中的名称时,我想复制到新表格。

这是我为第一部分(工作正常)和第二部分(工作不太好)所做的代码:

        sheet_name_to_create = Blad1.Range("e33").Value

        For rep = 1 To (Worksheets.Count)
            If LCase(Sheets(rep).Name) = LCase(sheet_name_to_create) Then
            MsgBox "This sheet already exists!)"
            Exit Sub
            End If

        Next

        ' börja kopieringen


            Sheets.Add After:=ActiveSheet
            Sheets(ActiveSheet.Name).Name = sheet_name_to_create

    'Second part trying to copy and paste
    'Now I want to copy values in "Blad1" to the newly made sheet ("sheet_name_to_create"). I know these codes are wrong, but it's what I got:

     Range("A1:AM73").Select
        Selection.Copy
        Sheets.Add After:=ActiveSheet
        ActiveSheet.Paste
        ActiveWindow.Zoom = 25

' Or

    WorksWorksheets("Blad1").Range ("A1:AF80").Copy Worksheets("sheet_name_to_create").Range ("A1:AF80")

请帮忙

1 个答案:

答案 0 :(得分:0)

创建新工作表时,请参考它 - 如下所示:

Set sourceSheet = ActiveSheet
Set destSheet = Sheets.Add(After:=sourceSheet)

您现在可以使用sourceSheetdestSheet来引用来源工作表或目标。

然后,您可以将名称应用于destSheet

destSheet.Name = sheet_name_to_create

然后您可以从源复制/粘贴到目标表:

sourceSheet.Range("A1:AM73").Copy destSheet

所以你的代码变成了:

sheet_name_to_create = Blad1.Range("e33").Value

For rep = 1 To (Worksheets.Count)
    If LCase(Sheets(rep).Name) = LCase(sheet_name_to_create) Then
        MsgBox "This sheet already exists!)"
        Exit Sub
    End If
Next
Set sourceSheet = ActiveSheet
Set destSheet = Sheets.Add(After:=sourceSheet)

destSheet.Name = sheet_name_to_create
sourceSheet.Range("A1:AM73").Copy destSheet
ActiveWindow.Zoom = 25