Тема: Excel- как получить путь к файлу

Может кто-нибудь подскажет как в форме сделать стандартный выбор файла, т.е. есть  textbox и кнопка выбора файла и надо что-бы в  textbox написался путь к вырбанному файлу
на кнопке макрос:

Sub GetImportFileName()
Dim filt As String
Dim filterindex As Integer
Dim filename As Variant
Dim title As String
filt = "(*.*),*.*"
filterindex = 1
title = "Выберите файл для вставки отчёта"
filename = Application.GetOpenFilename _
            (filefilter:=filt, _
             filterindex:=filterindex, _
             title:=title)
If filename = False Then
              MsgBox "файл не выбран."
              Exit Sub
              End If
End Sub

И как потом в этот файл скопировать лист из активной кноги?

Re: Excel- как получить путь к файлу

> A-Tri
И как потом в этот файл скопировать лист из активной кноги????????????!!!!!!!!!!!!!!!!!!!!!!!!!!!

Re: Excel- как получить путь к файлу

> A-Tri
Сварганил из хэлпа:

' grabbed from Help file
Public Function GetAnyFileName(ByVal ftypes As String, fileext As String) As String
    'Declare a variable as a FileDialog object.
    Dim fd As FileDialog
    'Create a FileDialog object as a File Picker dialog.
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    'Declare a variable to contain the path
    'of each selected item. Even though the path is a String,
    'the variable must be a Variant because For Each...Next
    'routines only work with Variants and Objects.
    Dim vrtSelectedItem As Variant
    Dim lngCount As Long
    'Use a With...End With block to reference the FileDialog object.
    With fd
        'Add a filter that includes GIF and JPEG images and make it the first item in the list.
        .Filters.Add ftypes, "*." & fileext, 1
         .AllowMultiSelect = False
        .InitialFileName = ThisWorkbook.Path & "\"
        'Use the Show method to display the File Picker dialog box and return the user's action.
        'If the user presses the action button...
        If .Show = -1 Then
            'Step through each string in the FileDialogSelectedItems collection.
            For Each vrtSelectedItem In .SelectedItems
                'vrtSelectedItem is a String that contains the path of each selected item.
                'You can use any file I/O functions that you want to work with this path.
                'This example simply displays the path in a message box.
                GetAnyFileName = CStr(vrtSelectedItem)
            Next vrtSelectedItem
        'If the user presses Cancel...
        Else
        MsgBox "Did you forget something?"
        End If
    End With
    'Set the object variable to Nothing.
    Set fd = Nothing
End Function
Sub test()
Dim exFileName As String
exFileName = GetAnyFileName("All Files", "*")
MsgBox "You selected " & exFileName
End Sub

~'J'~

Re: Excel- как получить путь к файлу

> A-Tri
Попробуй такой подход (проверено MS Office 2003)

Sub test()
     Dim exFileName As String
     exFileName = GetAnyFileName("All Files", "*")
     Workbooks.Open exFileName, , False
     Windows(2).Activate
     Workbooks(1).Worksheets("Sheet1").UsedRange.Copy _
                  Destination:=Workbooks(2).Worksheets("Sheet2").Range("A1")
     Workbooks(2).Save
     Workbooks(2).Close Savechanges:=True
     Windows(1).Activate
End Sub

"Sheet1" - имя листа откуда копируешь, лист должен быть активным
"Sheet2" - имя листа в другой книге куда вставляешь копию,
вторая книга должна быть закрыта
~'J'~

Re: Excel- как получить путь к файлу

> Fatty
А нельзя как-то запомнить exFileName, чтобы вставлять в Workbooks(2) не 1,2, а имя, а то если больше двух файлов открыто, то получается опасная путаница.
И ещё, в этом файле можно создать лист с введённым пользователем именем? И соответственно в него и копировать?

Re: Excel- как получить путь к файлу

> A-Tri
Посмотри свойство:
Application.WorkBooks(exfileName)
Чтобы добавить лист смотри метод Add:
WorkSheets.Add(1)
он становится сразу активным, тогда ему вдогонку
ActiveSheet.Name = "TheNameWhatYouWant"
~'J'~

Re: Excel- как получить путь к файлу

Ну вроде всё получается, но вот TextBox не понимаю как работает.
Как из него текст извлечь?
Уже по всякому пыталась.......
ни так не хочет:
ActiveSheet.Name = TextName.Text
ни так:
Range("A2").Select
    ActiveCells = TextName.Text
Как оно работает?

Re: Excel- как получить путь к файлу

> A-Tri
Закачай свой файл на сайт:
http://www.webfile.ru/
а ссылку кидай сюда
~'J'~

Re: Excel- как получить путь к файлу

вот ссылка: http://www.webfile.ru/1174160 (там в файле неразбериха, т.к. лист с расчётами потёрт)
textbox заработал, но почему-то не так как в хэлпе оказалось надо писать. Не понятно это.
Осталось проверки доделать (если лист с таким названием уже существует и т.д.)

Re: Excel- как получить путь к файлу

> A-Tri
Пока не получается :(
В процессе...
~'J'~

Re: Excel- как получить путь к файлу

> A-Tri
Извини, два выходных и все без толку
Наверно, такой бестолковый...
:(

Re: Excel- как получить путь к файлу

как же так? Проверки не получаются? Жалко.
Наверно, просто, там всё запутано очень. :)