GetOpenFilename

Программирование на Visual Basic for Applications
OlegkA
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 23.12.2004 (Чт) 21:51

GetOpenFilename

Сообщение OlegkA » 01.01.2005 (Сб) 13:51

есть код
Sub GetFileCodes() 'ïðîöåäóðà ïîëó÷åíèÿ èìåíè ôàéëà ñ êîäàìè è òàðèôàìè ãîðîäîâ
Dim Filt As String, FilterIndex As Integer, FileName As Variant, Title As String 'îáúÿâëÿåì ïåðåìåííûå
Filt = "Ôàéëû Excell (*.xls),*.xls" 'Óñòàíîâêà îòîáðàæàåìûõ ôàéëîâ(ïî øàáëîíó)
FilterIndex = 1 'çíà÷åíèå ïî óìîë÷àíèþ
Title = "Âûáåðèòå ôàéë ñ êîäàìè ãîðîäîâ" 'çàãîëîâîê îêíà
FileName = Application.GetOpenFilename(FileFilter:=Filt, FilterIndex:=FilterIndex, Title:=Title) 'âûâîäèì îêíî è ïîëó÷àåì èìÿ ôàéëà
If FileName = False Then 'åñëè íå âûáðàí ôàéë âûõîä èç ïðîöåäóðû
MsgBox "Ôàéë íå âûáðàí, äàëüíåéøàÿ îáðàáîòêà íåâîçìîæíà!"
Exit Sub
Else: Call tariff(FileName)
End If
End Sub


и еще код
Sub tariff(FileName)
For a = 1 To 500
Set b = Application.Workbooks(FileName).Worksheets(CODE).Range("A1").Offset(a - 1, 0)
Next a
End Sub

получается эксель не может обрабатывать закрытые рабочие книги?

OlegkA
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 23.12.2004 (Чт) 21:51

Сообщение OlegkA » 01.01.2005 (Сб) 14:06

т.е мы получили полный маршрут к файлу экселя с ним возможно потом работать или надо будет все равно его открывать, работать а потом закрывать?, не практично как-то.!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.01.2005 (Сб) 14:47

В ресторане.
- Один бокал вина, пожалуйста.
- Прошу...
- Надеюсь, вам не пришлось открывать ради меня бутылку?
- Месье знает другой способ извлечь вино?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

OlegkA
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 23.12.2004 (Чт) 21:51

Сообщение OlegkA » 01.01.2005 (Сб) 14:59

ну и сравнение ты привел. т.е нет?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.01.2005 (Сб) 15:03

Нет лучше способа испортить шутку, чем потребовать её объяснения.


:? :neutral: :)


Вопрос "Как прочитать файл, не открывая его", относится к категории "Банить сразу, разбираться потом" :)



Торчу на форуме 1 января :scratch: :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

OlegkA
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 23.12.2004 (Чт) 21:51

Сообщение OlegkA » 01.01.2005 (Сб) 15:10

алтернативы есть?, без визуализации открытия и тп.?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.01.2005 (Сб) 16:01

Да на здоровье... Если совсем не надо, чтобы даже мелькало, то создать ещё один невидимый инстанс экселя и всё загружать в него. Если можно, чтобы немного мелькало, то сразу после открытия visible=false.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

OlegkA
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 23.12.2004 (Чт) 21:51

Сообщение OlegkA » 02.01.2005 (Вс) 15:08

месье нешел способ это сделать!

OlegkA
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 23.12.2004 (Чт) 21:51

Сообщение OlegkA » 02.01.2005 (Вс) 15:13

вам его отписать?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.01.2005 (Вс) 15:17

Не мне, а нам.

Отпиши :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

OlegkA
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 23.12.2004 (Чт) 21:51

Сообщение OlegkA » 02.01.2005 (Вс) 16:57

Private Function GetValue(path, file, sheet, ref)
Dim arg As String
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetValue = "ôàéë íå íàéäåí!"
Exit Function
End If
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function

Sub a()
p = "C:\"
f = "aaa.xls"
s = "Ëèñò1"
cell = "A1"
n = GetValue(p, f, s, cell)
MsgBox n
End Sub

Аля, Улюю..

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.01.2005 (Вс) 17:00

Ох !@#$...

А ты думаешь, что при этом файл не открывается? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

OlegkA
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 23.12.2004 (Чт) 21:51

Сообщение OlegkA » 02.01.2005 (Вс) 17:02

а ты это видишь?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.01.2005 (Вс) 17:06

- Ты суслика видишь?
- Нет.
- И я нет. А он есть.
- Понял...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

OlegkA
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 23.12.2004 (Чт) 21:51

Сообщение OlegkA » 02.01.2005 (Вс) 17:22

ладно тема закрыта во всяком случае для меня,
я получил то что хотел

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 02.01.2005 (Вс) 20:45

[off]2 GSerg: И ты ДМБ смотришь :)[/off]

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.01.2005 (Вс) 22:12

Я ДМБ не смотрел, но эту цитату слышу уже раз в сотый... Видимо, это самая запоминающаяся часть фильма :-|
Изображение


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 57

    TopList