Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите с написанием макроса в экселе, хелп. / 19 сообщений из 19, страница 1 из 1
11.05.2007, 19:56
    #34520450
xbusss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
Помогите с написанием макроса в экселе, хелп.

Есть вот такой макрос:
Sub mozg1()

Range("A1").Select
ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.aaa/aaa.shtml?1189711", Destination:=Range("A1"))
.Name = "aaa.shtml?1189711"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "46"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub

Этот макрос осуществляет запрос, по заданному адресу (http://www.aaa/aaa.shtml?1189711) и берет данные из 46-ой таблицы и вставляет их в новый лист экселя.

А нужно сделать следующим образом, чтоб заданный адрес брался из листа 5 например(из ячейки А1) потом цикл (запрос+вставка данных на новый лист) и заново, но адрес уже берется из ячейки А2, короче чтоб адреса запросов брались поочередно с листа 5 из первого столбца. Нужно цикл сделать и переменные описать, борюсь 2-ой день, но никак, ПОМОГИТЕ ! аська 338160622, мыло 5615(собака)inbox.ru. нахожу похожие примеры но что-то никак. Заранее спасибо всем откликнувшимся.
...
Рейтинг: 0 / 0
11.05.2007, 20:36
    #34520505
NF
NF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
for each my_url in Sheets( 5 ).Range("a1:a"+cstr(Sheets( 5 ).Range("A65536").end(clUp).Row))

ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
my_url.text, Destination:=Range("A1"))
// не знаю, что такое Destination, но мысль должна быть ясна
// дальше идет твой код
next
...
Рейтинг: 0 / 0
12.05.2007, 08:26
    #34520746
xbusss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
спасибо за ответ, но что то не получается, теперь текст такой
Sub zap()
'
' zap Ìàêðîñ
' Ìàêðîñ çàïèñàí 10.05.2007 (ZZz)
'

'

For Each my_url In Sheets(5).Range("a1:a" + CStr(Sheets(5).Range("A1").End(clUp).Row))


ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
my_url.Text, Destination:=Range("A1"))
.Name = "eshop.shtml?1189711"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "46"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Next
End Sub

но пишет мол ошибка в строке с each....пишет subscript out of range..:-( как быть?
...
Рейтинг: 0 / 0
12.05.2007, 10:02
    #34520766
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
Отсутствует пятый лист?
...
Рейтинг: 0 / 0
12.05.2007, 10:05
    #34520767
xbusss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
нет, он есть, на нем же в первой колонке данные, которые надо подставлять в запрос...Ж-(
...
Рейтинг: 0 / 0
12.05.2007, 15:38
    #34520976
МойДаДыр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
xbusssнет, он есть, на нем же в первой колонке данные, которые надо подставлять в запрос...Ж-(
мляха буха, попробуй вместо цлап икслап
...
Рейтинг: 0 / 0
12.05.2007, 16:22
    #34521011
NF
NF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
Простите, косанул :)

Конечно же не clUp, а xlUp

Вот так

For Each my_url In Sheets(5).Range("a1:a" + CStr(Sheets(5).Range("A65536").End(xlUp).Row))


Кстати, у вас почему-то указано выше не Range("A65536"), а Range("A1") - это неверно.

Ведь смысл этой строки найти последний элемент в первом столбце. Этим и занимается конструкция: Sheets(5).Range("A65536").End(clUp).Row
Которую можно прочитать как "встать на листе 5 в ячейку А65536 и идти вверх до конца, пока не попадутся непустные ячейки". В общем это все равно что нажать Ctrl-Up на клавиатуре.
...
Рейтинг: 0 / 0
12.05.2007, 16:23
    #34521013
NF
NF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
Опять эта cl ко мне прицепилась :) Походу из Дельфей откуда-то... я щас как раз в Дельфе проект пишу.
...
Рейтинг: 0 / 0
12.05.2007, 19:13
    #34521164
xbusss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
поменял, не помогает Ж-( все без ошибок ставлю - фиг. Я вот еще думаю вот этот код аналогичный
Код:
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.
29.
30.
31.
32.
33.
34.
35.
36.
Sub makr2()
'
'

'
    For n = 1 To 5
   
    my_url = Range("A" & n).Value
   ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
my_url.Text, Destination:=Range("A1"))
.Name = "eshop.shtml?1189711"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "46"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
        
     Next
End Sub

,но он ругается на ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
my_url.Text, Destination:=Range("A1")) пишет что object requied, блин, ни как не получается. А иногда пишет что мол адрес не верный..Ж-(...а адреса в ячейках все нормальные...вот думаю может бейсик вставляет в запрос эти данные не в том формате....?
...
Рейтинг: 0 / 0
12.05.2007, 19:33
    #34521179
xbusss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
А если меняю

ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
my_url.Text, Destination:=Range("A1"))

на

ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;my_url.Text", Destination:=Range("A1"))

то пишет не верный адрес узла, проверьте его и повторите попытку.......адрес пробиваю все ок....как же быть, выручайте!
...
Рейтинг: 0 / 0
12.05.2007, 20:51
    #34521228
NF
NF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;my_url.Text", Destination:=Range("A1"))

не "URL;my_url.Text"
а "URL;"+my_url.Text

кстати, я у себя попробовал, без ".text" - работает
вот так

ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;"+my_url, Destination:=Range("A1"))
...
Рейтинг: 0 / 0
12.05.2007, 21:12
    #34521242
xbusss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
А можешь выложить полный текст...и у тебя какой эксел...у меня вообще не хочет пишет аут оф рэнж
...
Рейтинг: 0 / 0
12.05.2007, 21:16
    #34521249
xbusss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
У меня текст вот такой но пишет аут оф рендж
Sub makr2()
'
'

'
For Each my_url In Sheets(5).Range("a1:a" + CStr(Sheets(5).Range("A65536").End(xlUp).Row))
ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;" + my_url, Destination:=Range("A1"))
.Name = "eshop.shtml?1208611"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "46"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Next
End Sub

?
...
Рейтинг: 0 / 0
12.05.2007, 21:34
    #34521258
xbusss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
А что означает вот эта часть "a1:a" + CStr(Sheets(5). ?может тут поломка?
...
Рейтинг: 0 / 0
12.05.2007, 21:56
    #34521270
NF
NF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
А что означает вот эта часть "a1:a" + CStr(Sheets(5). ?может тут поломка?

А это я уже объяснял выше. Выполни свой макрос по шагам, посмотри в какой строке ошибка.
По шагам выполнить - F8.

Полный текст я не могу привести, потому что я реализовал лишь твою просьбу
Нужно цикл сделать и переменные описать

Цикл организован, переменные тоже. Я проверил - текст из ячеек куда надо проставляется.
У меня только такой кусок и он работает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub test()
Dim my_url As Range
    For Each my_url In Range("A2:А4")
        With ActiveSheet.QueryTables.Add(Connection:="URL;" + my_url, Destination:=Range("A1"))

        End With
    Next
End Sub

ошибка у тебя может быть с 65536 - это в моем екселе (2003) кол-во строк
...
Рейтинг: 0 / 0
12.05.2007, 22:23
    #34521283
xbusss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
По шагово
Sub test()
Dim my_url As Range
For Each my_url In Range("A2:À4")
With ActiveSheet.QueryTables.Add(Connection:="URL;" + my_url, Destination:=Range("A1"))

End With
Next
End Sub

пишет ошибку в этой строке For Each my_url In Range("A2:À4")
и пишет Method 'Range' of object '_Global' failed
...
Рейтинг: 0 / 0
12.05.2007, 22:28
    #34521285
NF
NF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
Как же сложно с тобой :)

У меня такую ошибку Excel выдал, когда я одну из букв А в строке
For Each my_url In Range("A2:А4")
заменил на.... русскую

попробуй набрать в английской раскладке
...
Рейтинг: 0 / 0
12.05.2007, 22:49
    #34521302
xbusss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
.......................ёёёёёёёёёёёё заработало, круто, ну ты мозг реальный, честно скажу....Ж-)....а у маеня у же крыша поехала.......спасибо тебе, могу даже чем нить проставиться Ж-)...ну выручил, круто Ж-) спасибо Ж-)
...
Рейтинг: 0 / 0
12.05.2007, 23:01
    #34521315
NF
NF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием макроса в экселе, хелп.
Я рад.
Честно сказать уже и не ожидал успехов от тебя ;)

Еще момент.
Ты там в своем коде походу везде
.Name = "aaa.shtml?1189711"
юзаешь.

Не факт, конечно, но у меня такое подозрение ;)

Поменяй там. Сделай например

i=i+1
.Name = "МойДиапазон"+cstr(i)

чтобы у тебя каждый раз диапазон назывался по-новому.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите с написанием макроса в экселе, хелп. / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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