2016-06-30 11 views
0

誰もがベースのすべてのループしたファイルを保存し、シートでExcel VBAループしてセル範囲に

私はマクロがワークブックベースにシート名用/ループを見ることになるでExcel VBAでプログラムを作成しようとしています優れた範囲。また、シート名を検索した後、プログラムは他のセル範囲の指定されたファイル名に基づいてシートを保存します。

ここで私の主な問題は、以下の図に示されている地名に基づいてループファイル/シート名を保存する方法です。

私の問題を助けてくれることを願っています。

マクロに関する私の最近の作業ですが、ファイルを保存できますが、検索したシート名に基づいてファイルを保存します。ありがとう。 sample picture here

Sub Save_Test() 
Dim ws As Worksheet 
Dim wb As Workbook 
Dim c, b As Range 
Dim rng, rng2 As Range 
Dim mysheet As Worksheet 
Dim LastRow, LastRow2 As Integer 
Dim file_name As String 

LastRow = Range("I" & rows.Count).End(xlUp).row 

Set rng = Range("J5:J" & LastRow) 



Set ws = Worksheets("Control") 
For Each c In rng 

    Sheets(c.Value).Select 
    Cells.Select 
    Selection.Copy 
    Workbooks.Add 
    ActiveSheet.Paste 
    Application.CutCopyMode = False 
    Selection.Copy 
    Application.DisplayAlerts = False 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Range("A1").Select 
    ActiveSheet.Name = c.Value 
    Application.CutCopyMode = False 
    ActiveWindow.DisplayGridlines = False 
    TemplateLocation = ThisWorkbook.Path 

    file_name = c.Value 
    ActiveWorkbook.SaveAs Filename:=TemplateLocation & "\" & "Reports" & "\" & Format(Now() - 1, "mmyy") & " " & file_name & " Hustle Board thru " & Format(Now() - 1, "mm-dd-yy"), FileFormat:=51, CreateBackup:=False 

    Application.DisplayAlerts = False 
    ActiveWindow.Close 

Next 
Sheets("Control").Select 
End Sub 
+0

良い質問は、いくつかのコードが含まれているか、少なくとも仕様*だけでなく、*特定の問題の明確な説明が含まれていることが望ましいです。タックルに問題がある最初の特定の部分を選んで、それについて質問してください。 –

+0

[How to Ask](http://stackoverflow.com/help/how-to-ask) –

+0

ご迷惑をおかけして申し訳ございません。そこに行く。私はすでにファイルを保存するために私の最近の作業コードを入れました。私が望むのは、シート名に基づいていない特定のセル範囲に基づいてファイル名を持つことだけです。 – Mark

答えて

0

あなたは、あなたがする必要がある他のものに記入する必要がありますが、あなたの写真、あなたのコードをオフに行く、これはところでteritory

Dim r As Range 
    Dim rng As Range 
    Dim LastRow As Long 
    Dim ws As Worksheet 

    LastRow = Range("I" & Rows.Count).End(xlUp).Row 

    Set rng = Range("J5:J" & LastRow)  
    For Each r In rng 

     file_name = r.Offset(, -1) 
      ActiveWorkbook.SaveAs Filename:=TemplateLocation & "\" & "Reports" & "\" & Format(Now() - 1, "mmyy") & " " & file_name & " Hustle Board thru " & Format(Now() - 1, "mm-dd-yy"), FileFormat:=51, CreateBackup:=False 

    Next r 
End Sub 

であなたに値を取得する必要があります、あなたがまだ知らないならば、以下のようなvaribalesを宣言することは良い習慣ではありません。この場合rng

Dim rng, rng2 As Range 

は、この時点ではRNGはありません。変数Rangeとして明示的に宣言するには、これを下に行う必要があります。

Dim rng as Range, rng2 As Range 
+0

はい!とった。できます!ご協力いただきありがとうございます! – Mark

+0

それを答えとしてマークしてください。それが助けになったら投票してください。 – KyloRen

関連する問題