Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Excel - указать файл Добавлено: 08.10.10 21:12  

Автор вопроса:  yukra | Web-сайт: yukra.ru
есть след. код макроса, нужно что бы читался не заданный файл(i:\file.txt),а что бы пользователь указывал какой именно файл читать (можно до выполнения макроса, но естественно вариант "пусть пользователь в ячейку A1 напишет 'с:\Документ и сетинг\Имя пользователя\Рабочий стол\Файл.тхт' а ты из a1 его прочитай" не очень подходит)

Sub Макрос2()
   Sheets("Лист3").Select
   Cells.Select
   Selection.Delete Shift:=xlUp
   
    
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;I:\file.txt", _
        Destination:=Range("A1"))
        .Name = "POS1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 4
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileDecimalSeparator = "."
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

Ответить

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

Номер ответа: 1
Автор ответа:
 Nezhniy



ICQ: 419841508 

Вопросов: 9
Ответов: 100
 Web-сайт: www.helpim.ru
 Профиль | | #1
Добавлено: 08.10.10 22:42
openfiledialog тебе в помощь ) http://msdn.microsoft.com/ru-ru/library/system.windows.forms.openfiledialog.aspx , там показано как пользоваться , далее задай условие , типа какой файл выбран , значит с ним проводить макрос.

Ответить

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



ICQ: nospam 

Вопросов: 10
Ответов: 53
 Профиль | | #2 Добавлено: 02.06.11 14:27
У меня вот как это реализовано. Думаю, что на примере можно и переиначить как нужно. Сам долго не мог разобраться, как вызвать диалог выбора нужного файла, потом у кого-то спер.

В основном макросе вызываем функцию
  1.  
  2. dayFile = GetFileName()
  3. 'Application.AskToUpdateLinks = False
  4. Application.DisplayAlerts = False
  5. If dayFile <> "" Then
  6.     Set TgtWbk = Workbooks.Open(dayFile, True, True)
  7. End If



Код функции:
  1.  
  2. Function GetFileName()
  3. Dim Filter As String, Title As String
  4. Dim FilterIndex As Integer
  5. Dim Filename As Variant
  6. ' File filters
  7. Filter = "Excel Files (*.xls),*.xls," & _
  8.         "Text Files (*.txt),*.txt," & _
  9.         "All Files (*.*),*.*"
  10. ' Default Filter to *.*
  11. FilterIndex = 3
  12. ' Set Dialog Caption
  13. Title = "Select 90 days file"
  14.  
  15. With Application
  16.     ' Set File Name to selected File
  17.     Filename = .GetOpenFilename(Filter, FilterIndex, Title)
  18. End With
  19. ' Exit on Cancel
  20. If Filename = False Then
  21.     MsgBox "No file was selected."
  22.     GetFileName = ""
  23.     Exit Function
  24. End If
  25. ' Open File
  26.  
  27. GetFileName = Filename
  28. End Function

Ответить

Страница: 1 |

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



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