2016-11-11 7 views
0

マクロの目的は、モデル内でハードコードをチェックする範囲をユーザーが選択できるようにすることです。マクロは、ワークシート、セルアドレス、およびハードコードの値をサマリーシートに印刷します。マクロは現在、1枚のシートからのみ選択している場合に効果的です。ただし、選択範囲を複数のシートに拡張すると、マクロは意図したものの1つではなく、複数のシートを作成します。お時間を事前にありがとう、あなたはそのようなこと行うことができます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

を助ける:あなたは、アレイ内の選択したシートを保存するための第1で

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 

を。次に、特定のシートを1つ選択し、サムシートを追加することができます。 2番目の方法は、格納された情報を操作する方法を示しています。選択したシートをループしてすべての値を取得し、必要に応じてそれらを再度選択することができます。シッダールタ敗走に

クレジット(Similar case

関連する問題