Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: выбор файла и ссылка на него в макросе Добавлено: 10.03.09 16:00  

Автор вопроса:  apelsin
Добрый день,

Может кто-нибудь сталкивался, в макросе существуют ссылки на определенный файл, но с каждым периодом этот файл будет иметь другое название. Чтобы вручную не переделывать все ссылки, хотелось бы узнать, если ли возможность программной организации выбора файла и последующего использования его адреса для ссылок. например выпадает окно, так все по обычному,"Обзор" и так далее, выбирает файл, и в дальнейшем ссылаемся на него в ссылках.

Надеюсь понятно объяснил. Заранее спасибо

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 10.03.09 16:32
Код в общем модуле:
  1. Option Explicit
  2.  
  3. Private Type OPENFILENAME
  4.     lStructSize       As Long
  5.     hwndOwner         As Long
  6.     hInstance         As Long
  7.     lpstrFilter       As String
  8.     lpstrCustomFilter As String
  9.     nMaxCustFilter    As Long
  10.     nFilterIndex      As Long
  11.     lpstrFile         As String
  12.     nMaxFile          As Long
  13.     lpstrFileTitle    As String
  14.     nMaxFileTitle     As Long
  15.     lpstrInitialDir   As String
  16.     lpstrTitle        As String
  17.     flags             As Long
  18.     nFileOffset       As Integer
  19.     nFileExtension    As Integer
  20.     lpstrDefExt       As String
  21.     lCustData         As Long
  22.     lpfnHook          As Long
  23.     lpTemplateName    As String
  24. End Type
  25.  
  26. Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
  27.  
  28. Public Function ShowFileOpen() As String
  29.     Dim OpenFile As OPENFILENAME
  30.     Dim lReturn As Long
  31.     Dim strFilter As String
  32.     OpenFile.lStructSize = Len(OpenFile)
  33.     strFilter = "Книга Excel (*.xls)" & Chr(0) & "*.xls" & Chr(0)
  34.     With OpenFile
  35.         .lpstrFilter = strFilter
  36.         .nFilterIndex = 1
  37.         .lpstrFile = String(257, 0)
  38.         .nMaxFile = Len(.lpstrFile) - 1
  39.         .lpstrFileTitle = .lpstrFile
  40.         .nMaxFileTitle = .nMaxFile
  41.         .lpstrInitialDir = "D:\"
  42.         .lpstrTitle = "Выберите файл для ссылок..."
  43.         .flags = 0
  44.     End With
  45.     lReturn = GetOpenFileName(OpenFile)
  46.     If lReturn = 0 Then
  47.         ShowFileOpen = ""
  48.     Else
  49.         ShowFileOpen = OpenFile.lpstrFile
  50.     End If
  51. End Function


По нажатию на кнопку (имя кнопки, например cmdFile1), которую надо положить на лист рядом с ячейкой (допустим R2C3) в модуле листа:
  1. Option Explicit
  2.  
  3. Private Sub cmdFile1_Click()
  4.     ThisWorkbook.Worksheets("Лист1").Cells(2, 3).Value = ShowFileOpen()
  5. End Sub


Потом все внешние ссылки задействуют эту ячейку для формирования адреса через ДВССЫЛ.

Ответить

Номер ответа: 2
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #2 Добавлено: 10.03.09 16:42
Возможность есть:
  1. With Application.FileDialog(msoFileDialogOpen)
  2.   .Show
  3.   .SelectedItems (lngCount)   'путь к файлу
  4. End With

Еще как вариант, если название выглядит примерно так "Файл выборки 20090310.xls", можно программно организовать, основываясь на текущей дате, например.

Ответить

Номер ответа: 3
Автор ответа:
 apelsin



Вопросов: 1
Ответов: 1
 Профиль | | #3 Добавлено: 10.03.09 17:06
ой, спасибо Вам большое) я наверно не упомянул что я полный профан) ладно я попробую разобраться, если не пойму ничего, то ещё раз обращусь) Спасибо огромное)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам