获取宏以创建工作表并粘贴到第一个空列中,然后可以再次运行

时间:2017-03-17 15:41:13

标签: excel vba excel-vba

我正在试图弄清楚如何将一列数据传递到工作表中,然后再次重新运行宏,以便我可以选择一个不同的列,以便在刚创建的工作表中发布但我无法弄清楚如何正确地写我的IF语句。这就是我到目前为止所拥有的。该错误告诉我该工作表已经存在,但我需要它能够粘贴到该工作表中,如果它是真的,如果工作表没有,那么它需要创建它。我相信每个循环或第一个if语句都有错误。

Sub Macro_2424()

    Dim FromRange As range
    Dim ToRange As range

    Set FromRange = Application.InputBox("Enter the range from which you want to copy : ", Type:=8)
    FromRange.Select
    Selection.Copy

    Dim wb As Workbook
    Dim ws As Worksheet

    Set wb = ActiveWorkbook
    For Each ws In wb.Worksheets
    If ws.Name = "Data_New" Then

            With Worksheets("Data_New")

            If IsEmpty(range("A1")) = False Then
               Cells(1, Columns.count).End(xlToRight).PasteSpecial Paste:=xlPasteValues
            Else
               Cells(1, "A").PasteSpecial xlPasteValues, xlPasteSpecialOperationNone
            End If
            End With

    Else
            Set wst = Worksheets.Add
            wst.Name = "Data_New"

            With Worksheets("Data_New")
            If IsEmpty(range("A1")) = False Then
               Cells(1, Columns.count).End(xlToRight).PasteSpecial Paste:=xlPasteValues
            Else
               wst.Cells(1, "A").PasteSpecial xlPasteValues, xlPasteSpecialOperationNone
            End If
            End With
    End If

    Next

   ' If wst.Cells(1, "A").Value = "" Then
    '    wst.Cells(1, "A").PasteSpecial xlPasteValues, xlPasteSpecialOperationNone

   ' Else
    '     Cells(1, Columns.count).End(xlToRight).PasteSpecial Paste:=xlPasteValues
   ' End If

    'wst.Cells(1, "A").PasteSpecial xlPasteValues, xlPasteSpecialOperationNone

     Cells.Columns.AutoFit    
End Sub

0 个答案:

没有答案