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

Ваш аккаунт

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

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

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

макросы в excel

83K
01 февраля 2014 года
Сыч
17 / / 01.02.2014
подскажите как написать макрос для удаления значений из ячеек excel не самих ячеек а именно значений
275
01 февраля 2014 года
pashulka
985 / / 19.09.2004
 
Код:
Range("A1:C10").ClearContents
Диапазон, разумеется, нужно указать свой
83K
01 февраля 2014 года
Сыч
17 / / 01.02.2014
спасибо , то что нужно
83K
01 февраля 2014 года
Сыч
17 / / 01.02.2014
спасибо, то что надо , все работает
83K
01 февраля 2014 года
Сыч
17 / / 01.02.2014
возникла проблема, не знаю как указать нужный диапазон на другом листе куда подставлять Worksheets
275
01 февраля 2014 года
pashulka
985 / / 19.09.2004
Если речь идёт о активной рабочей книге, то :

 
Код:
Worksheets("Имя листа").Range("A1:C10").ClearContents
или

 
Код:
Worksheets(1).Range("A1:C10").ClearContents
'где 1 - это индекс(номер) листа
Если речь другой лист принадлежит неактивной книге, то необходимо указать ещё и книгу, т.е.

 
Код:
Workbooks("Имя открытой книги.xls").Worksheets("Имя листа").Range("A1:C10").ClearContents
или через индекс
83K
01 февраля 2014 года
Сыч
17 / / 01.02.2014
спасибо) я наверное ошибся в написании, я подставлял все то же самое но выдавал ошибку, тогда методом тыка стал переставлять Workshits и подумал что требуется дополнительная команда
275
01 февраля 2014 года
pashulka
985 / / 19.09.2004
Если Вы использовали вариант с именем листа и получали ошибку, то есть вероятность банальной очепятки, а с этим безобразием можно бороться - просто скопировав имя с ярлычка (типа, двойной клик, Ctrl+C, Ctrl+V)

Или создав именованный диапазон (вручную или программно) и использовав в своём макросе - имя диапазона.

Или воспользовавшись кодовым(программным именем листа), типа

 
Код:
Лист1.Range("A1:F5").ClearContents
или

 
Код:
Лист1.[A1:F5].ClearContents
83K
01 февраля 2014 года
Сыч
17 / / 01.02.2014
нет я как раз копировал, смотрел семинары Дмитрия Быстрова, скорее всего забыл банальную точку
83K
01 февраля 2014 года
Сыч
17 / / 01.02.2014
с них я и начал внедрять в работу макросы
83K
08 марта 2014 года
Сыч
17 / / 01.02.2014
есть вопрос, когда пишу cells(1,1)=cells(activecells.row,2) все работает а интересно почему не работает cells(1,1)=cells(activecells.row,activecells.row) ? и есть ли решение для одной нужной ячейки, я действую методом тыка
275
08 марта 2014 года
pashulka
985 / / 19.09.2004
Обе инструкции работать не могут, ибо в Excel может быть только одна активная ячейка, т.е. ActiveCell

Что касается Cells(1, 1) = Cells(ActiveCell.Row, ActiveCell.Row) то присвоение осуществляться будет только до тех пор, пока номер строки не превысит номер столбца (ибо во всех версиях количество строк и столбцов различно)

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

 
Код:
Cells(1, 1) = ActiveCell.Row
или тавталогия :

 
Код:
Cells(1, 1) = Cells(ActiveCell.Row, ActiveCell.Column)
83K
08 марта 2014 года
Сыч
17 / / 01.02.2014
спасибо, сейчас попробую
275
10 марта 2014 года
pashulka
985 / / 19.09.2004
P.S. Разумеется, для того, чтобы получить значение активной ячейки, нужно избавиться от очепятки, т.е.

 
Код:
Cells(1, 1) = ActiveCell
или явно использовать свойство .Value

 
Код:
Cells(1, 1).Value = ActiveCell.Value
83K
10 марта 2014 года
Сыч
17 / / 01.02.2014
кстати а можно поподробнее что это за value и какая у этого слова в бейсик смысловая нагрузка
83K
12 апреля 2014 года
Сыч
17 / / 01.02.2014
есть проблема , нужна помощь http://upload.akusherstvo.ru/image625787.jpg
83K
12 апреля 2014 года
Сыч
17 / / 01.02.2014
надо чтоб по одному нажатию спецификация заполнилась последовательно выбранными значениями
275
12 апреля 2014 года
pashulka
985 / / 19.09.2004
Свойство .Value позволяет получить значение ячейки/диапазона.

Лучше выложите небольшой пример в виде .xls файла (можно на этот форум, в виде архива), ибо есть предположение, что можно обойтись и без цикла.
83K
29 июня 2014 года
Сыч
17 / / 01.02.2014
нужен макрос для создания с документа новой книги
275
29 июня 2014 года
pashulka
985 / / 19.09.2004
Новую рабочую книгу можно создать следующим образом :

 
Код:
Workbooks.Add
или так

 
Код:
Dim iNewBook As Workbook
Set iNewBook = Workbooks.Add
83K
29 июня 2014 года
Сыч
17 / / 01.02.2014
большое спасибо буду пробовать
83K
29 июня 2014 года
Сыч
17 / / 01.02.2014
вообще немного не так, есть рабочая книга, например договор, хотелось чтоб заполненный лист из договора сохранялся как отдельная книга в заданную папку
275
29 июня 2014 года
pashulka
985 / / 19.09.2004
Это уже совсем другая задача, для решения которой, желательно знать некоторые нюансы ... но если в момент выполнения макроса, рабочая книга "Договор.xls" открыта и Вы знаете имя листа, который необходимо сохранить в виде отдельной книги и он не скрыт, и нам не надо проверять заполнен или нет, этот лист, то :

 
Код:
Workbooks("Договор.xls").Worksheets("Отчёт").Copy
ActiveWorkbook.Close FileName:="C:\Договор_копия.xls", saveChanges:=True
83K
30 июня 2014 года
Сыч
17 / / 01.02.2014
что то не получилось http://upload.akusherstvo.ru/image650675.jpg
ziti -название фабрики считалка лист который надо сохранить книга тоже называется ziti
275
30 июня 2014 года
pashulka
985 / / 19.09.2004
Проверьте :
- открыта ли рабочая книга с именем "Ziti.xls"
- правильно ли указано расширение (возможно Вы работаете с файлами, созданными XL2007-2013, типа .xlsx, .xlsm)

P.S. Если макрос находится в книге "Ziti.xls", то можно использовать синтаксис :

 
Код:
ThisWorkbook.Worksheets("Считалка").Copy
83K
30 июня 2014 года
Сыч
17 / / 01.02.2014
конечно открыта, в ней и находится кнопка с макросом, офис который шел с win сразу был снесен и установлен 2007
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог