2016-07-20 3 views
0

値を貼り付けたり画像を変更したりせずに、数式なしですべてのアクティブブック(マクロ対応でないものも含む)の名前を変更したコピーを作成しようとしています。 XLSMにすべてのXLSファイルに変換XLSファイルのループがありますが、DOを作成します)画像を含むすべての開いているワークシートの新しいワークシートに値を貼り付けます。

1:私は、私のプロセスは理想的になりますエクセル2007

で働いています。 1つの可能な追加は、A)ワークシート名を格納する配列B)そのタブ名とその状態

2)アクティブなすべてのワークシートの値を自動的にペーストするforループまたはforループをaで実行するまたは他の画像を、同じ名前を持つ新しい文書に追加します。

3)値を含む新しく名前を付けたファイルをxlsに変換します。

私がこれをやろうとしたときに実行している問題の1つは、リンクと関係しています。最初のワークシートには、リンクが自動的に更新されない数式があります。私がこれを行うと、元のワークシートのリンク参照を持つ数式が破損する傾向があります。私はこれがあなたが求めているものだと思います

Sub test() 
Dim MyNames As Range, MyNewSheet As Range 

    Set MyNames = Range("R5").CurrentRegion ' load contigeous range into variable 
    For Each MyNewSheet In MyNames.Cells ' loop through cell children of range variable 
     Sheets.Add.Name = MyNewSheet.Value 
    Next MyNewSheet 
    MyNames.Worksheet.Select    ' move selection to original sheet 
End Sub 

答えて

0

は、ここで私が貼り付け値が見つかり一般的なマクロです

Sub test() 

Dim wb As Workbook 
Dim ws As Worksheet 
Dim counter As Integer 
Dim filePath As String 

Set wb = ActiveWorkbook 
countet = 1 

filePath = "c:/" 'Enter your destination folder here 

For Each ws In wb.Sheets 
    Sheets("Sheet1").Copy 
    With ActiveSheet.UsedRange 
     .Value = .Value 
    End With 
    ActiveWorkbook.SaveAs filePath & counter & ".xlsx", FileFormat:=51 
    counter = counter + 1 
Next ws 
End Sub 

これは主にhereから取られています。

カウンタは、ファイルがすべて同じ名前で保存されておらず、お互いに上書きされていないことを確認するためのハックです。おそらく、これを回避するより適切な方法があります。

関連する問題