2015-08-12 1 views
0

Все, что я пытаюсь сделать, это скопировать, вставить диапазон ячеек в новый CSV-файл и сохранить новый файл с помощью VBA. Я буду использовать этот VBA для этого файла много раз. Итак, я бы хотел, чтобы он сохранил файлы с числом.Экспортируйте диапазон ячеек в новый CSV-файл с VBA и сохраните его без перезаписи

Я использую приведенный ниже код и он работает:

Sub ExportRangetoFile() 
Dim Rng As Range 
Dim WorkRng As Range 
Dim xFile As Variant 
Dim xFileString As String 
On Error Resume Next 
xTitleId = "KutoolsforExcel" 
Set WorkRng = Application.Selection 
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8) 
Application.ActiveSheet.Copy 
Application.ActiveSheet.Cells.Clear 
WorkRng.Copy Application.ActiveSheet.Range("A1") 
Set xFile = CreateObject("Scripting.FileSystemObject") 
ActiveWorkbook.SaveAs Filename:="C:\Users\User\Desktop\Range.csv", FileFormat:=xlCSV, CreateBackup:=False 
End Sub 

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

Я предполагаю, что это часть я должен изменить:

ActiveWorkbook.SaveAs Filename:="C:\Users\User\Desktop\Range.csv", FileFormat:=xlCSV, CreateBackup:=False 

Я попытался изменить «False» на «True», но это не сработало. Может быть, по другой причине.

ответ

0

Я просто перечитал? еще раз. Вам нужен способ получить новый номер и добавить его в имя файла.

FiNum = ... 'get file number from a text file 
FiName = "C:\Users\User\Desktop\Range" & FiNum & ".csv" 
ActiveWorkbook.SaveAs Filename:=FiName, FileFormat:=xlCSV, CreateBackup:=False 
FiNum = FiNum + 1 
Call WriteToFile(FiNum) ... 'write file number back to text file 

Sub WriteToFile(ByVal FiNum As Long) 
    Open "C:\FiNumber.txt" For Output As #1 
    Print #1, CStr(FiNum) 'print as string for optimum results 
    Close #1 
End Sub 
Смежные вопросы