2016-10-28 8 views
-2

プログラミングに関しては賢明ではありません。私と一緒に抱きしめてください。ExcelのVBAをコピーする - > Excelの列からWindowsファイルを複数ペーストして名前を変更する

私は、ソース位置c:\Sourceにimage.pdfファイルを持っています。私はこのファイルのコピーを作成し、別の名前で別の場所に名前を変更します。しかし、問題はそれ以上ではありません。

このペースト操作を100回実行して、Excelの列に基づいてすべてのファイルの名前を変更したいとします。毎日、範囲が拡大または縮小します。例

ソース・ファイル名の

- Image.Jpg
ソースの場所 - C:\ソース\
先のファイル名 - D:
先のファイル名\ \デスティネーション -

Alpha.Jpg
Beta.Jpg




Zebra.Jpg

あなただけの送信元と送信先のファイル名と場所を入力することによって、これを実行するためのコードとサンプルExcelファイルを私に提供していただけますか?

私は毎日これを行うのに多くの時間を費やしてきましたので、私を助けてください。参照用のサンプルExcelシートが必要な場合はお知らせください。

+1

私たちは、あなたがそれを自分で試してみましたし、 – techydesigner

答えて

0

これを試してください。参照Microsoft Scripting Runtimeを追加する必要があります。 >「参照」

Option Explicit 

Sub CreateCopies(ByVal destPath As String, ByVal templateFullPathName As String) 

Dim fso As Scripting.FileSystemObject 
Dim aName As Variant 
Dim wks As Worksheet 
Dim myDest As String 
Dim lastRow As Long, iCell As Long 

Set fso = New Scripting.FileSystemObject 

Set wks = ThisWorkbook.Sheets("Sheet1") 

' Find last row in column A 
lastRow = wks.Range("A" & wks.Rows.Count).End(xlUp).Row 

' Loop through cells from last row to 2nd row (if 1st row is header) 
For iCell = lastRow To 2 Step -1 

    aName = Cells(iCell, 2).Value 

    myDest = destPath & "\" & "Copy of " & aName & ".pdf" 

    fso.CopyFile _ 
     Source:=templateFullPathName, _ 
     Destination:=myDest 

Next iCell 

If Not (fso Is Nothing) Then Set fso = Nothing 
End Sub 


Sub UseThisToCallProcedure() 
Call CreateCopies("D:\Destination\", "C:\Source\FILETOCOPY.pdf") 
End Sub 
+0

ありがとうそれで問題が発生しているSOない限り、上の例のコードを提供しない - あなたは、「ツール」の下でそれを行います。私は返信を忘れた。 –

+0

@MansoorKhader答えとして受け入れてください。 – Niclas

関連する問題