2016-11-11 72 views
0

我的宏的目的是让用户在他们的模型中选择他们想检查硬编码的范围。宏然后在汇总表上打印工作表,单元格地址和硬代码的值。如果您仅从一张纸上进行选择,该宏目前效果很好;但是,如果将选择扩展到多个工作表,宏将创建多个工作表,而不是仅打算执行一个工作表。预先感谢您的时间和帮助VBA - 防止添加多张表格

Set RngCon = Selection.SpecialCells(xlCellTypeConstants, xlNumbers) 

Set SumWS = Worksheets.Add 
Username = InputBox("Please create a name for the output sheet (i.e. Whs Industry Hard Codes)") 
SumWS.Name = Username 

x = 1 
    SumWS.Cells(x, 1) = "Worksheet" 
    SumWS.Cells(x, 2) = "Address" 
    SumWS.Cells(x, 3) = "Value" 

For Each c In RngCon 
    x = x + 1 
    SumWS.Cells(x, 1) = c.Worksheet.Name 
    SumWS.Cells(x, 2) = c.Address(False, False) 
    SumWS.Cells(x, 3) = c.Value 
Next c 

回答

0

你可以做这样的事情:

Sub test() 

    Dim SumWS As Worksheet 
    Dim ws As Worksheet 
    Dim SelectedSheets() As String 
    Dim n As Long 
    Dim i As Long 

    n = 0 
    For Each ws In ActiveWindow.SelectedSheets 
     ReDim Preserve SelectedSheets(n) 
     SelectedSheets(n) = ws.Name 
     n = n + 1 
    Next 

    Sheets(SelectedSheets(0)).Select 
    Set SumWS = Worksheets.Add 

    Debug.Print "Sum Sheet: " & SumWS.Name 
    For i = LBound(SelectedSheets) To UBound(SelectedSheets) 
     Debug.Print "Selected Sheet #" & i & ": " & SelectedSheets(i) 
    Next i 
End Sub 

在第一个为你保存选定表中的数组。然后,您可以选择一个特定工作表并添加总表。第二个显示如何处理存储的信息。您可以循环选定的工作表以获取所有值,并根据需要再次选择它们。

学分亚洲时报Siddharth溃败(Similar case