Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Эксель. Простой макрос. Автонумерация. / 5 сообщений из 5, страница 1 из 1
28.08.2011, 14:16
    #37415108
Изерлонер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эксель. Простой макрос. Автонумерация.
Здравствуйте. Начал изучать VBА. Делаю макрос для вставки в предварительно выделенные ячейки номеров по порядку (надо без использования формул экселя)

Пишу по памяти, с телефона - прошу прощения за синтаксические ошибки, если таковые будут в коде.

sub Nummer ()

dim i as integer, r as range
set r = selection
msgbox("Количество выделенных ячеек "& CStr (r.count))
for i = 1 to r.count
r(i).value = i
next

end sub

При выделении ячеек и запуске макроса выдается сообщение о количестве выделенных ячеек и происходит их заполнение порядковыми номерами. Однако в случае выделения нескольких диапазонов ячеек спомощью ctrl, их количество определяется верно, а вот заполнение происходит от первого диапазона и без пропусков далее, даже по невыделенной области. Почему так происходит, и как сделать правильно? Спасибо.
...
Рейтинг: 0 / 0
28.08.2011, 15:50
    #37415150
Михаил Ч.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эксель. Простой макрос. Автонумерация.
Изерлонер,

Попробуйте так:

Код: plaintext
1.
2.
3.
4.
5.
6.
Sub Nummer()
Dim i As Integer, r As Range
MsgBox ("Количество выделенных ячеек " & CStr(Selection.Count))
For Each r In Selection
    i = i + 1: r = i
Next r
End Sub
...
Рейтинг: 0 / 0
28.08.2011, 15:51
    #37415151
alectr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эксель. Простой макрос. Автонумерация.
Изерлонер,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub Nummer()

Dim i As Integer, r As Range
Set r = Selection
MsgBox ("Количество выделенных ячеек" & CStr(r.Count))
For Each rr In r
rr.Value = i
i = i +  1 
Next
End Sub
...
Рейтинг: 0 / 0
29.08.2011, 07:13
    #37415496
Изерлонер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эксель. Простой макрос. Автонумерация.
Опаньки! ... А есть ли возможность отмены действий макроса? По ошибке выделил не те ячейки и применил макрос. Информация в ячейках затерлась. Отмена не работает :(
Как-то возможно предусмотреть такой случай?

З.Ы. за ответы спасибо. Все работает как надо. Вопрос (скорее риторический, так как убедился что все работает) по последнему примеру переменная rr не нуждается в объявлении? И какой у нее тип? Range?
...
Рейтинг: 0 / 0
29.08.2011, 09:06
    #37415521
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эксель. Простой макрос. Автонумерация.
Действие макроса в общем случае не отменяется.
rr - Range. Все переменные надо объявлять, почитайть ФАК по Option Exlicit.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Эксель. Простой макрос. Автонумерация. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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