Доброго времени суток, подскажите пожалуйста почему через раз вставляется данные в ячейку N38 и далее при выборе файлов через диалоговое окно, код вроде так не должен работать, но почему-то он ведет себя иначе, где-то здесь пробел: [vba]
Код
Do Range("N37").Select Do ActiveCell.Offset(1, 0).Select Loop Until ActiveCell = "" With Application.FileDialog(msoFileDialogFilePicker) .ButtonName = "Добавить прилагаемые"
If .Show = 0 Then
Set wdApp = CreateObject("Word.Application") Set wdDoc = wdApp.Documents.Add
Range("N13:W50").Copy wdApp.Visible = True wdApp.Documents.Add 'wdApp.Selection.PasteAndFormat (wdFormatDocument) wdDoc.Range(0).Paste wdDoc.SaveAs q & Range("A8").Value & ".doc" wdDoc.Close True wdApp.Quit 'wdApp.PrintOut Copies:=1, ActivePrinter:="Microsoft print to pdf" Set objWrdDoc = Nothing: Set objWrdApp = Nothing Exit Sub Else End If
ReDim arrFiles(1 To .SelectedItems.Count) For i = 1 To .SelectedItems.Count arrFiles(i) = .SelectedItems(i) Next i End With
For i = 1 To UBound(arrFiles) FileCopy arrFiles(i), q & Dir(arrFiles(i)) ActiveCell.Offset(i - 1, 0).Value = CreateObject("Scripting.FileSystemObject").GetFileName(arrFiles(i)) Next i Loop Until Application.FileDialog(msoFileDialogFilePicker).Show = 0
Set wdApp = CreateObject("Word.Application") Set wdDoc = wdApp.Documents.Add
Доброго времени суток, подскажите пожалуйста почему через раз вставляется данные в ячейку N38 и далее при выборе файлов через диалоговое окно, код вроде так не должен работать, но почему-то он ведет себя иначе, где-то здесь пробел: [vba]
Код
Do Range("N37").Select Do ActiveCell.Offset(1, 0).Select Loop Until ActiveCell = "" With Application.FileDialog(msoFileDialogFilePicker) .ButtonName = "Добавить прилагаемые"
If .Show = 0 Then
Set wdApp = CreateObject("Word.Application") Set wdDoc = wdApp.Documents.Add
Range("N13:W50").Copy wdApp.Visible = True wdApp.Documents.Add 'wdApp.Selection.PasteAndFormat (wdFormatDocument) wdDoc.Range(0).Paste wdDoc.SaveAs q & Range("A8").Value & ".doc" wdDoc.Close True wdApp.Quit 'wdApp.PrintOut Copies:=1, ActivePrinter:="Microsoft print to pdf" Set objWrdDoc = Nothing: Set objWrdApp = Nothing Exit Sub Else End If
ReDim arrFiles(1 To .SelectedItems.Count) For i = 1 To .SelectedItems.Count arrFiles(i) = .SelectedItems(i) Next i End With
For i = 1 To UBound(arrFiles) FileCopy arrFiles(i), q & Dir(arrFiles(i)) ActiveCell.Offset(i - 1, 0).Value = CreateObject("Scripting.FileSystemObject").GetFileName(arrFiles(i)) Next i Loop Until Application.FileDialog(msoFileDialogFilePicker).Show = 0
Set wdApp = CreateObject("Word.Application") Set wdDoc = wdApp.Documents.Add
Там весь код сплошной безграмотный бред. Нет смысла разбираться. Зачем зацикливать диалог с мультиселектом? зачем каждый раз создавать по 2 дока? [vba]
Код
Set wdApp = CreateObject("Word.Application") Set wdDoc = wdApp.Documents.Add ... wdApp.Documents.Add
[/vba]А это вообще Вы откуда такую ересь берете? [vba]
Код
For i = 1 To UBound(arrFiles) FileCopy arrFiles(i), q & Dir(arrFiles(i)) ActiveCell.Offset(i - 1, 0).Value = CreateObject("Scripting.FileSystemObject").GetFileName(arrFiles(i)) Next i
[/vba]Зачем создавать гору ненужных объектов? Загадить всю память? После такого комп надо дезинфицировать хлоркой. Так это делается: [vba]
Код
For i = 1 To UBound(arrFiles) FileCopy arrFiles(i), q & Dir(arrFiles(i)) Cells(i +37, 23).Value = q & Dir(arrFiles(i)) Next i
[/vba] ИМХО рано Вам еще за такие проекты браться. Начните с чего-то попроще, почитайте литературу, примеры из книжек погоняйте.
Там весь код сплошной безграмотный бред. Нет смысла разбираться. Зачем зацикливать диалог с мультиселектом? зачем каждый раз создавать по 2 дока? [vba]
Код
Set wdApp = CreateObject("Word.Application") Set wdDoc = wdApp.Documents.Add ... wdApp.Documents.Add
[/vba]А это вообще Вы откуда такую ересь берете? [vba]
Код
For i = 1 To UBound(arrFiles) FileCopy arrFiles(i), q & Dir(arrFiles(i)) ActiveCell.Offset(i - 1, 0).Value = CreateObject("Scripting.FileSystemObject").GetFileName(arrFiles(i)) Next i
[/vba]Зачем создавать гору ненужных объектов? Загадить всю память? После такого комп надо дезинфицировать хлоркой. Так это делается: [vba]
Код
For i = 1 To UBound(arrFiles) FileCopy arrFiles(i), q & Dir(arrFiles(i)) Cells(i +37, 23).Value = q & Dir(arrFiles(i)) Next i
[/vba] ИМХО рано Вам еще за такие проекты браться. Начните с чего-то попроще, почитайте литературу, примеры из книжек погоняйте.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
мне не даст никакой информации, либо ничего не писать. [vba]
Код
Cells(i +37, 23).Value = q & Dir(arrFiles(i))
[/vba] Вот это я не знаю что такое, мне не нужно файлы вставлять в ячейки, мне надо было имя файла вставить в ячейки. Даже не знаю как можно файл вставить в ячейку
KuklP, здесь имелось ввиду описать действие кода, а информация типа
мне не даст никакой информации, либо ничего не писать. [vba]
Код
Cells(i +37, 23).Value = q & Dir(arrFiles(i))
[/vba] Вот это я не знаю что такое, мне не нужно файлы вставлять в ячейки, мне надо было имя файла вставить в ячейки. Даже не знаю как можно файл вставить в ячейкуAsretyq