Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с меню / 25 сообщений из 35, страница 1 из 2
17.01.2013, 16:13
    #38114214
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Открывал так когда знал путь и конкретный файл:
Код: vbnet
1.
Set xlsWb = xlsApp.Workbooks.Open("C:\Documents and Settings\User\отчет.xls")


А когда все меняется хотелось бы загружать путь сюда:
Код: vbnet
1.
Set xlsWb = xlsApp.Open("СЮДА")


Допустим вот так сделал:
Код: vbnet
1.
2.
3.
4.
fileToOpen = xlsApp.GetOpenFilename("Only these Files (*.txt;*.doc;*.xls), *.txt; *.doc; *.xls")
If fileToOpen <> False Then

End If


А как написать чтобы путь поместить куда нужно?
...
Рейтинг: 0 / 0
17.01.2013, 18:11
    #38114420
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Техник55,

Set xlsWb = xlsApp.Open( fileToOpen )
?? Это основы основ
...
Рейтинг: 0 / 0
17.01.2013, 18:13
    #38114422
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Точнее так, не усмотрел что вы зачем то отбросили Workbooks. Метода Open нет у Application
Код: vbnet
1.
Set xlsWb = xlsApp.Workbooks.Open(fileToOpen)
...
Рейтинг: 0 / 0
17.01.2013, 18:20
    #38114428
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Я так и пробовал. И не пошло...
Как раз забыл WorkBooks, вот и спросил.
...
Рейтинг: 0 / 0
17.01.2013, 18:33
    #38114446
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Все равно ошибку выдает
object variable or with variable not set
...
Рейтинг: 0 / 0
17.01.2013, 23:50
    #38114671
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Техник55,

на какой строке ? xlsApp инициализирован ?
...
Рейтинг: 0 / 0
18.01.2013, 09:43
    #38114862
ZVI
ZVI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Вариант кода:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Sub Test()
  
  Dim xlsApp As Object
  Dim xlsWb As Object
  Dim fileToOpen As Variant
  
  On Error Resume Next
  Set xlsApp = GetObject(, "Excel.Application")
  If Err Then Set xlsApp = CreateObject("Excel.Application")
  On Error GoTo exit_
  
  xlsApp.Visible = True
  
  fileToOpen = xlsApp.GetOpenFilename("Excel files (*.xls*), *.xls*")
  If fileToOpen <> False Then
    Set xlsWb = xlsApp.workbooks.Open(fileToOpen)
  End If
  
  ' ...
  
exit_:
  
  Set xlsWb = Nothing
  Set xlsApp = Nothing
  
  If Err Then MsgBox Err.Description, "Error #" & Err.Number
  
End Sub
...
Рейтинг: 0 / 0
18.01.2013, 09:44
    #38114864
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Все разобрался надо было в модуле объявить Dim xlsApp As Object, а активацию в событии Form_Load()
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Option Explicit
Dim xlsApp As Object
 
Private Sub Form_Load()
Set xlsApp = CreateObject("Excel.Application")
xlsApp.Visible = True
End Sub
...
Рейтинг: 0 / 0
18.01.2013, 09:50
    #38114872
ZVI
ZVI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
ZVI
Код: vbnet
1.
  If Err Then MsgBox Err.Description, "Error #" & Err.Number


Должно быть так:
Код: vbnet
1.
  If Err Then MsgBox Err.Description, [color=red]16[/color], "Error #" & Err.Number

[/quot]
...
Рейтинг: 0 / 0
18.01.2013, 09:52
    #38114878
ZVI
ZVI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Извиняюсь, не проверил тэги, должно быть так:
If Err Then MsgBox Err.Description, 16 , "Error #" & Err.Number
...
Рейтинг: 0 / 0
18.01.2013, 09:55
    #38114885
i45
i45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
ZVIВариант кода:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Sub Test()
  
  Dim xlsApp As Object
  Dim xlsWb As Object
  Dim fileToOpen As Variant
  
  On Error Resume Next
  Set xlsApp = GetObject(, "Excel.Application")
  If Err Then Set xlsApp = CreateObject("Excel.Application")
  On Error GoTo exit_
  
  xlsApp.Visible = True
  
  fileToOpen = xlsApp.GetOpenFilename("Excel files (*.xls*), *.xls*")
  If fileToOpen <> False Then
    Set xlsWb = xlsApp.workbooks.Open(fileToOpen)
  End If
  
  ' ...
  
exit_:
  
  Set xlsWb = Nothing
  Set xlsApp = Nothing
  
  If Err Then MsgBox Err.Description, "Error #" & Err.Number
  
End Sub



ZVI,

Код: vbnet
1.
If fileToOpen <> False Then 



равносильно и проще

Код: vbnet
1.
If fileToOpen Then
...
Рейтинг: 0 / 0
18.01.2013, 10:53
    #38114953
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Подскажите, вот при создании допустим нового файла:
Код: vbnet
1.
Set xlsWb1 = xlsApp.Workbooks.Add


как ему имя дать?
xlsWb1="новое имя" ????
...
Рейтинг: 0 / 0
18.01.2013, 11:06
    #38114971
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Техник55Подскажите, вот при создании допустим нового файла:
Код: vbnet
1.
Set xlsWb1 = xlsApp.Workbooks.Add


как ему имя дать?
xlsWb1="новое имя" ????Имя книге дается лишь при ее сохранении.
...
Рейтинг: 0 / 0
18.01.2013, 11:36
    #38115016
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Понятно, плохо. Мне просто необходимо работать с двумя файлами xls и надо с одного переходить на другой:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
xlsApp.Windows("отчет.xls").Activate
                xlsApp.Cells(R, 1).Select
                xlsApp.Selection.Copy
    
                xlsApp.Windows(???????????).Activate
                xlsApp.Cells(R, 1).Select
                xlsApp.ActiveSheet.Paste
...
Рейтинг: 0 / 0
18.01.2013, 11:46
    #38115044
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Техник55Мне просто необходимо работать с двумя файлами xls и надо с одного переходить на другой:1) Мне надо дать имя файлу
2) Мне необходимо переходить с одного файла на другой
3) Мне необходимо скопировать диапазон из одной книги в другую книгу
определись, что хошь на самом деле?

для решения задачи 3) пункты 1) и 2) ни разу не требуются:
Код: vbnet
1.
workbooks("книга1").Worksheets("Лист1").range("A2").Copy workbooks("книга2").Worksheets("Лист1").range("A3")
...
Рейтинг: 0 / 0
18.01.2013, 11:48
    #38115051
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
и вот это еще почитай
...
Рейтинг: 0 / 0
18.01.2013, 15:39
    #38115586
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Да интересно была ссылка по переделке макроса:
Когда делал так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
xlsApp.Windows("1.xls").Activate
                xlsApp.Cells(R, 1).Select
                xlsApp.Selection.Copy
    
               xlsApp.Windows("2.xls").Activate
                xlsApp.Cells(R, 1).Select
                xlsApp.ActiveSheet.Paste


То из одного файла переносилось так как есть в другой. Я имею допустим были ячейки объединенные, центрирование текста итд.
А когда так:
Код: vbnet
1.
 xlsSh.Cells(R, 1).Copy xlsSh1.Cells(R, 1)


То все ужалось в одну ячейку и все, выходит копирование не равнозначное?!
...
Рейтинг: 0 / 0
18.01.2013, 15:41
    #38115588
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
а .Cells(R, 1) - это и есть одна ячейка. указывай диапазон
...
Рейтинг: 0 / 0
18.01.2013, 15:49
    #38115601
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Shocker.Proдля решения задачи 3) пункты 1) и 2) ни разу не требуются:

И еще момент. У Вас указаны книги 1 и 2, а если уже какая то книга будет открыта и в этот момент я запущу прогу свою, тогда вновь созданная уже будет книга N, а у меня четко будет прописано книга1 или2?
...
Рейтинг: 0 / 0
18.01.2013, 15:51
    #38115606
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Кто создает эту книгу? Твой код? Тогда тебе вообще пофиг как она называется, у тебя на нее прямая ссылка есть.
...
Рейтинг: 0 / 0
18.01.2013, 15:57
    #38115623
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Shocker.Proа .Cells(R, 1) - это и есть одна ячейка. указывай диапазон
Во-первых R у меня переменная.
Во-вторых: в исходной файле были ячейки A10:J10 объединены и в итоге она получила имя A10, поэтому я и копирую А10, но объединение не переносится.
Если только перед copy объеденить массив
Код: vbnet
1.
xlsApp.Workbooks("книга1").Worksheets("книга1").Range("AR:JR").Merge


Правда он не понимает что R-переменная, где то накосячил я.
...
Рейтинг: 0 / 0
18.01.2013, 15:59
    #38115626
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Код: vbnet
1.
xlsApp.Workbooks("книга1").Worksheets("лист1").Range("AR:JR").Merge
...
Рейтинг: 0 / 0
18.01.2013, 16:03
    #38115634
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Техник55Правда он не понимает что R-переменная, где то накосячил я.
Правильно, ты же ему не объяснил, где у тебя тект, а где переменная:
Код: vbnet
1.
xlsApp.Workbooks("книга1").Worksheets("книга1").Range("A" & R & ":J" & R).Merge



Но зачем объединять-то? прямо этот Range и копируй.
...
Рейтинг: 0 / 0
18.01.2013, 16:23
    #38115678
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
точно не указал
правильно зачем объединять, сразу диапазаон брать. Просто думал это не правильное будет обращение, раз объединили то нужно одну ячейку указывать, ОШИБАЛСЯ...
...
Рейтинг: 0 / 0
18.01.2013, 18:39
    #38115860
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с меню
Подскажите вот есть папка(дирректория) в ней файлы с имена п.1, п.2 итд. Нужно указать путь до них через как бы обзор, чтобы потом проверять наличие этих файло п.1, п.2
Код: vbnet
1.
2.
For S = 1 To 40
   If Dir("C:.........." & "\п." & Val(S) & ".*") <> "" Then


Может использовать CommonDialog1.ShowOpen, только не знаю как?
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с меню / 25 сообщений из 35, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]