Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel: Элементарный вопрос / 9 сообщений из 9, страница 1 из 1
03.08.2006, 14:17:13
    #33897281
Secundra Dass
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: Элементарный вопрос
Моя задача ставится примерно так:

Есть прайс-лист *.xls. Необходимо производить нехитрую операцию со строками таблицы.

Требуется написать простенький макрос использовать его каждый раз при получении извне нового прайса.

Моя проблема в том, что я не сталкивался с макросами. Знаю основы С++, Делфи. Visual Basic изучал, но давно, помню плохо.

Вопрос в том, как надо оформлять текст макроса в виде отдельного файла, чтоб он был пригоден неоднократно. Как быстренько написать макрос? В каком редакторе?

Убедительная просьба помочь )))
...
Рейтинг: 0 / 0
03.08.2006, 14:48:05
    #33897432
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: Элементарный вопрос
1. создается персональная книга макросов как отдельный файл
Как в екселе создать и использовать библиотеку макросов

2. в EXCEL в меню "сервис - макрос - редактор Visual Basic"
там все и пишется (alt+F11)

после открытия редактора вставь модуль (в меню "Insert - modul")
там все и пиши
пример:
sub primer()
msgbox "Привет"
end sub
а запуск можно делать в меню "сервис - макрос - макросы..."
...
Рейтинг: 0 / 0
03.08.2006, 15:00:36
    #33897487
Secundra Dass
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: Элементарный вопрос
Спасибо! По части обычного Visual Basic как-нибудь разберусь, изучал все-таки.

А вот как обращаться из макроса к элементам листа? Например, как присвоить значение конкретной ячейке?
...
Рейтинг: 0 / 0
03.08.2006, 15:34:56
    #33897659
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: Элементарный вопрос
Secundra DassСпасибо! По части обычного Visual Basic как-нибудь разберусь, изучал все-таки.

А вот как обращаться из макроса к элементам листа? Например, как присвоить значение конкретной ячейке?

Код: plaintext
1.
2.
3.
Workbooks("Книга1").Worksheets("Лист1").Range("A5").Value = "проба"
f = "Привет"
Workbooks("Книга1").Worksheets("Лист1").Range("A6").Value = f
Cells( 7 ,  1 ).Value = "блабла" & f
это нужно?
...
Рейтинг: 0 / 0
03.08.2006, 15:59:25
    #33897752
Secundra Dass
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: Элементарный вопрос
Очень нужно, еще раз спасибо!

Только вот как бы мне размножить такую строчку на все строки:

Код: plaintext
Workbooks("книга1").Worksheets("лист1").Range("B2").Value = a & Workbooks("книга1").Worksheets("лист11").Range("A2").Value & b & " " & Workbooks("книга1").Worksheets("лист11").Range("B2").Value

Цикл видимо.

1. Как выставить границы цикла? Например, мне нужно сделать по всем ненулевым строкам. Откуда взять количество строчек?

2. Имена ячеек имзменять в цикле по-простому?
Код: plaintext
....Range("B" & i)....
...
Рейтинг: 0 / 0
03.08.2006, 17:24:45
    #33898128
Secundra Dass
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: Элементарный вопрос
Вопрос про границы цикла по-прежнему актуален - как же мне узнать, сколько строк в документе?

И еще: в моем документе трехуровневая структура (черт знает как это зовется, короче как папки в проводнике). Так вот мне бы обрабатывать лишь строчки самого низшего уровня. Можно как-нибудь получить доступ только к ним?
...
Рейтинг: 0 / 0
03.08.2006, 18:09:04
    #33898262
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: Элементарный вопрос
Secundra DassОчень нужно, еще раз спасибо!

Только вот как бы мне размножить такую строчку на все строки:

Код: plaintext
Workbooks("книга1").Worksheets("лист1").Range("B2").Value = a & Workbooks("книга1").Worksheets("лист11").Range("A2").Value & b & " " & Workbooks("книга1").Worksheets("лист11").Range("B2").Value

Цикл видимо.

1. Как выставить границы цикла? Например, мне нужно сделать по всем ненулевым строкам. Откуда взять количество строчек?

2. Имена ячеек имзменять в цикле по-простому?
Код: plaintext
....Range("B" & i)....


я так понимаю тебе надо работать с диапозоном
вот так работает
Код: plaintext
Worksheets("лист1").Range("B2:B10") = Worksheets("лист11").Range("A2:A10")
а так нет
Код: plaintext
Worksheets("лист1").Range("B2:B10") = a & Worksheets("лист11").Range("A2:A10")
поэтому наверно тебе понадобится перебор в цикле
определение границ посмотри сдесь
Поиск последней ячейки в EXCEL
ну а цикл ты наверно знаешь
допустим
Код: plaintext
\nicount = Worksheets("лист11").UsedRange.Rows.Count\nfor i =  1  to icount\n     if Worksheets("лист11").cells(i, 1 ) <> "" then _\n           Worksheets("лист1").Range("B" & i) = a & Worksheets("лист11").Range("A" & i)\nnext\t
...
Рейтинг: 0 / 0
03.08.2006, 18:11:54
    #33898274
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: Элементарный вопрос
Secundra Dass
И еще: в моем документе трехуровневая структура (черт знает как это зовется, короче как папки в проводнике). Так вот мне бы обрабатывать лишь строчки самого низшего уровня. Можно как-нибудь получить доступ только к ним?
чего-то я непонял.
...
Рейтинг: 0 / 0
03.08.2006, 19:49:42
    #33898466
Secundra Dass
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: Элементарный вопрос
Большое спасибо за подсказки!
Пока попробую поковыряться сам ))
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel: Элементарный вопрос / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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