Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

проблема с VB в Excel

3.0K
23 января 2003 года
trouble
3 / / 23.01.2003
По работе мне приходится работать с очень большими таблицами эксель. В частности, имея каталог с наименованиями и ценами в 7-8 тыс. позиций, приходится расценивать заявки в 100-900 позиций. Я попробовал сделать макрос, который бы добавлял выделенную (нужную) позицию в новую таблицу друг за другом. Но мой макрос не добавляет запись в новую таблицу, а прописывает все новые позиции поверх записанных (в той же ячейке). Код такой: Sub Макрос20()
'
' Макрос20 Макрос
' Макрос записан 23.01.2003 (Trouble)
'
' Сочетание клавиш: Ctrl+z
'
Selection.Copy
Sheets("Лист2").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Лист1").Select
End Sub

Мне нужно, чтоб он делал таблицу из добавленных позиций. Если кто-то может помочь - помогите, буду благодарен. Заранее спасибо.

P.S. Надеюсь все доступно объяснил :)
532
23 января 2003 года
Ghost
34 / / 20.01.2000
Цитата:
Originally posted by trouble

Я не уверен, что правильно понял, что надо сделать. Попробуйте заменить в своем макросе

 
Код:
Sheets("Лист2").Select
на
 
Код:
Sheets.Add
3.0K
23 января 2003 года
trouble
3 / / 23.01.2003
Цитата:
Originally posted by Ghost
Я не уверен, что правильно понял, что надо сделать. Попробуйте заменить в своем макросе
 
Код:
Sheets("Лист2").Select
на
 
Код:
Sheets.Add



Спасибо, попробовал, но это изменение добавляет количество листов в книге. Скорее всего, необходимо изменение в значении параметра range, но вот какое - я не знаю.

267
23 января 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by trouble
По работе мне приходится работать с очень большими таблицами эксель. В частности, имея каталог с наименованиями и ценами в 7-8 тыс. позиций, приходится расценивать заявки в 100-900 позиций. Я попробовал сделать макрос, который бы добавлял выделенную (нужную) позицию в новую таблицу друг за другом. Но мой макрос не добавляет запись в новую таблицу, а прописывает все новые позиции поверх записанных (в той же ячейке). Код такой: Sub Макрос20()
'
' Макрос20 Макрос
' Макрос записан 23.01.2003 (Trouble)
'
' Сочетание клавиш: Ctrl+z
'
Selection.Copy
Sheets("Лист2").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Лист1").Select
End Sub

Мне нужно, чтоб он делал таблицу из добавленных позиций. Если кто-то может помочь - помогите, буду благодарен. Заранее спасибо.

P.S. Надеюсь все доступно объяснил :)



Делай так:

Sub Макрос20()
'
' Макрос20 Макрос
' Макрос записан 23.01.2003 (Trouble)
'
' Сочетание клавиш: Ctrl+z
'
Dim i As Long

'Поиск пустого места на листе "Лист2"
i = 1
While ThisWorkbook.Worksheets("Лист2").Cells(i,1).Value <> ""
i = i + 1
Wend

'Копирование.
'Для удобства пользователя копируется
'вся строка, содержащая выделенную ячейку
Selection.EntireRow.Copy Destination:= ThisWorkbook.Worksheets("Лист2").Cells(i,1)

End Sub

3.0K
23 января 2003 года
trouble
3 / / 23.01.2003
Спасибо, но будь добр, напиши это чтоб можно было просто сделать copy/past, а то я не совсем понял, что там надо в код вставить, а что - комментарии :) Пожалуйста :)
267
23 января 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by trouble
Спасибо, но будь добр, напиши это чтоб можно было просто сделать copy/past, а то я не совсем понял, что там надо в код вставить, а что - комментарии :) Пожалуйста :)



Так и делай копи/паст. Комментарии начинаются с апострофа, они будут поняты Бейсиком как комментарии.

1.3K
24 января 2003 года
IKor
116 / / 04.12.2002
В Excel можно скопировать строку(и) и вставить с заменой (простая вставка), а можно вставить над выделенной строкой (вставка строки из меню Вставка). Поэкспереминтируй с этими возможностями. Если это то, что тебе нужно, то запиши макрос с этими действиями и посмотри их код.
2.0K
30 января 2003 года
Polev
33 / / 20.12.2002
Цитата:
Originally posted by trouble

' Макрос20 Макрос
' Макрос записан 23.01.2003 (Trouble)
'
' Сочетание клавиш: Ctrl+z
'
Selection.Copy
Sheets("Лист2").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Лист1").Select
End Sub



Selection.Insert Shift:=xlDown

Удачи! :-)))

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог