2015-04-22 4 views
0

Я пытаюсь автоматически сохранять файлы в указанной папке. Нравится ResultTest1, ResultTest2, ResultTest3 и т. Д.VBA автоматически сохраняет файлы

Dim savedName As String 
Dim arNames() As String 
Dim myCount As Integer 

savedName = Dir$("D:\Users\tmp4jj\Desktop\ComparisonTool\ResultTest*.docx") 
Do Until savedName = "" 
    myCount = myCount + 1 
    ReDim Preserve arNames(1 To myCount) 
    arNames(myCount) = savedName 
    savedName = Dir$ 
Loop 

Я пробовал этот код, но я не уверен, что он действительно сработает. Кроме того, я попытался записать макрос, где я заранее изменил параметры сохраненного файла. Эти коды выскочили, не совсем точно, поможет ли это.

ActiveDocument.SaveAs2 FileName:="ResultTest.docx", FileFormat:= _ 
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _ 
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _ 
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ 
SaveAsAOCELetter:=False, CompatibilityMode:=14 
+0

Когда файлы должны сохранить ?, Если вам просто нужно найти файлы в каталоге, вы нашли много решений, которые здесь например, используя 'Scripting' com;). –

+0

Я использую это в дополнение к макросу сравнения текста, где будут сравниваться два файла, и в новом документе слова будет создан дополнительный файл «результатов». Я хочу сохранить этот файл результатов в указанной папке. –

+0

Возможный дубликат [Макрос сравнения циклов] (http://stackoverflow.com/questions/29767537/loop-comparison-macro) –

ответ

0

Если вы хотите работать с файлами с некоторой функциональностью, я предлагаю вам использовать FileSystemObject com object.

Есть много примеров его использования в проектах, как:

  1. Get content of the directory using wildcast with FileSystemObject
  2. How can I use the FileSystemObject to “Copy and rename”

Вы также можете использовать like оператор в цикле для поиска файлов -в (1) образец -; как это:

IF (f1.name like "ResultTest*.docx") THEN 
    ' Write your code here 
END IF 

On Error Resume Next 
Application.ScreenUpdating = False 
Application.DisplayAlerts = False 

' Getting file name by default input window 
Flname = InputBox("Enter File Name :", "Creating New File...") 
If Flname <> "" Then 

    ' adding a new workbook 
    Set NewWkbk = Workbooks.Add 

    ' Copy data from a sheet (e.g 5) from current workbook to a sheet (e.g 1) in that new one 
    ThisWorkbook.Sheets(5).Copy Before:=NewWkbk.Sheets(1) 

    ' Create excel file by saving the new workbook as file name 
    NewWkbk.SaveAs ThisWorkbook.Path & "\" & Flname 

    If Err.Number = 1004 Then 
     NewWkbk.Close 
     MsgBox "File Name Not Valid." 
     Exit Sub 
    End If 
End If 
+0

Не уверен, что я получаю это право ... но FileSystemObject получает файлы из определенной папки/диск? Я пытаюсь сохранить файлы в определенной папке/диске. Таким образом, файлы еще не существуют, и я не думаю, что FileSystemObject будет работать? Я очень новичок в этом, хотя, возможно, я ошибаюсь. –

+0

@JunJie Oh !, Итак, вы хотите создать новый файл Excel с вашими результатами? Я добавляю решение;). –

Смежные вопросы