Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Относительные ссылки в макросе - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Относительные ссылки в макросе
muxa Дата: Четверг, 29.11.2012, 20:56 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Макрос правильно работает, если применяется с ячейки G75. Если смета длиннее, то концовка сдвигается вниз. Происходит сбой, и текст вставляется не туда. Как можно изменить макрос, чтобы всё вставлялось на своё место?
 
Ответить
СообщениеМакрос правильно работает, если применяется с ячейки G75. Если смета длиннее, то концовка сдвигается вниз. Происходит сбой, и текст вставляется не туда. Как можно изменить макрос, чтобы всё вставлялось на своё место?

Автор - muxa
Дата добавления - 29.11.2012 в 20:56
AlexM Дата: Четверг, 29.11.2012, 21:39 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
А где файл с макросом? Не думаю, что без файла можно вам помочь.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеА где файл с макросом? Не думаю, что без файла можно вам помочь.

Автор - AlexM
Дата добавления - 29.11.2012 в 21:39
Alex_ST Дата: Четверг, 29.11.2012, 21:39 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Эх, ещё бы на макрос посмотреть...
А так: присвойте ячейке имя и в макросе обращайтесь к нему.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеЭх, ещё бы на макрос посмотреть...
А так: присвойте ячейке имя и в макросе обращайтесь к нему.

Автор - Alex_ST
Дата добавления - 29.11.2012 в 21:39
muxa Дата: Четверг, 29.11.2012, 21:44 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Забыл )) В файле меняется концовка и две цифры в шапке. Прикладываю два файла начальный и результат. А в каком виде приложить макрос?
К сообщению приложен файл: 02-01-02.rar (22.1 Kb) · 02-01-021.rar (25.4 Kb)


Сообщение отредактировал muxa - Четверг, 29.11.2012, 22:11
 
Ответить
СообщениеЗабыл )) В файле меняется концовка и две цифры в шапке. Прикладываю два файла начальный и результат. А в каком виде приложить макрос?

Автор - muxa
Дата добавления - 29.11.2012 в 21:44
muxa Дата: Четверг, 29.11.2012, 21:48 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

вот макрос
К сообщению приложен файл: Module4.bas (2.4 Kb)
 
Ответить
Сообщениевот макрос

Автор - muxa
Дата добавления - 29.11.2012 в 21:48
RAN Дата: Четверг, 29.11.2012, 21:48 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
В виде файла. cool


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВ виде файла. cool

Автор - RAN
Дата добавления - 29.11.2012 в 21:48
muxa Дата: Четверг, 29.11.2012, 21:51 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

не прикладывается dry . Может большой?
 
Ответить
Сообщениене прикладывается dry . Может большой?

Автор - muxa
Дата добавления - 29.11.2012 в 21:51
Alex_ST Дата: Четверг, 29.11.2012, 22:03 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Уберите лишние листы и данные,а если всё равно будет больше 100кило, то заархивируйте.

Но раз уж Вы смогли экспортировать модуль из проекта, то почему было его сначала не почистить от лишних телодвижений (точнее "мышкодвижений")?
Вообще-то глянул в Нотепаде: очень странное нагромождение именованных диапазонов, прямых ссылок на диапазоны в стиле А1 и R1C1, прокруток колёсика мыши и т.д.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеУберите лишние листы и данные,а если всё равно будет больше 100кило, то заархивируйте.

Но раз уж Вы смогли экспортировать модуль из проекта, то почему было его сначала не почистить от лишних телодвижений (точнее "мышкодвижений")?
Вообще-то глянул в Нотепаде: очень странное нагромождение именованных диапазонов, прямых ссылок на диапазоны в стиле А1 и R1C1, прокруток колёсика мыши и т.д.

Автор - Alex_ST
Дата добавления - 29.11.2012 в 22:03
muxa Дата: Четверг, 29.11.2012, 22:14 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

файлы вставил выше, а макрос почистил. Так в этом и вопрос. Как написать чтобы ссылки были не прямые?
К сообщению приложен файл: Module3.bas (2.1 Kb)


Сообщение отредактировал muxa - Четверг, 29.11.2012, 22:24
 
Ответить
Сообщениефайлы вставил выше, а макрос почистил. Так в этом и вопрос. Как написать чтобы ссылки были не прямые?

Автор - muxa
Дата добавления - 29.11.2012 в 22:14
RAN Дата: Четверг, 29.11.2012, 22:34 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Слов нет, одни буквы. Взял да и удалил макрос из файла. angry


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеСлов нет, одни буквы. Взял да и удалил макрос из файла. angry

Автор - RAN
Дата добавления - 29.11.2012 в 22:34
muxa Дата: Пятница, 30.11.2012, 00:52 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Добавил нормальный файл с макросом.
К сообщению приложен файл: 6001729.rar (28.1 Kb)
 
Ответить
СообщениеДобавил нормальный файл с макросом.

Автор - muxa
Дата добавления - 30.11.2012 в 00:52
RAN Дата: Пятница, 30.11.2012, 09:08 | Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Жуть!
Quote (muxa)
Как можно изменить макрос, чтобы всё вставлялось на своё место?

Только полностью переписать.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЖуть!
Quote (muxa)
Как можно изменить макрос, чтобы всё вставлялось на своё место?

Только полностью переписать.

Автор - RAN
Дата добавления - 30.11.2012 в 09:08
muxa Дата: Пятница, 30.11.2012, 11:43 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Попытаюсь объяснить ситуацию.
Макрос работает, но в одном частном случае.
Сметы бывают разные, количество строк в смете меняется. Шаблон не меняется. Концовка не меняется, но сдвигатся либо вниз, либо вверх.
Как сделать, чтобы ссылки были не прямые на конкретные ячейки, а привязывались относительно ячейки "с курсором" или к концу сметы,
чтобы текст попадал насвоё место?


Сообщение отредактировал muxa - Пятница, 30.11.2012, 17:34
 
Ответить
СообщениеПопытаюсь объяснить ситуацию.
Макрос работает, но в одном частном случае.
Сметы бывают разные, количество строк в смете меняется. Шаблон не меняется. Концовка не меняется, но сдвигатся либо вниз, либо вверх.
Как сделать, чтобы ссылки были не прямые на конкретные ячейки, а привязывались относительно ячейки "с курсором" или к концу сметы,
чтобы текст попадал насвоё место?

Автор - muxa
Дата добавления - 30.11.2012 в 11:43
RAN Дата: Пятница, 30.11.2012, 21:28 | Сообщение № 14
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
после ВСЕГО по смете объединенных ячеек в столбце А быть не должно!
[vba]
Code
Sub qqq()
Dim lastRow&, rRange As Range
Dim ind#
ind = 6.8
lastRow = Range("A" & Rows.Count).End(xlUp).Row
Rows(lastRow).Copy
Rows(lastRow & ":" & lastRow + 1).Insert Shift:=xlDown
     Application.CutCopyMode = False
     Range("A" & Rows.Count).End(xlUp).Offset(-2).Resize(2, 11).ClearContents
     Set rRange = Range("A" & Rows.Count).End(xlUp)
     rRange.Offset(-2) = "  ИТОГО по смете"
     rRange.Offset(-2, 1) = rRange.Offset(-9, 1)
     rRange.Offset(-1) = "  НДС от МР (18%) от (" & rRange.Offset(-7, 1) & " * " & ind & ")"
     rRange.Offset(-1, 1) = rRange.Offset(-7, 1) * ind * 0.18
     rRange.Offset(, 1) = rRange.Offset(-2, 1) + rRange.Offset(-1, 1)
     [D16] = rRange.Offset(, 1) / 1000
     [D17] = ind * 53.069
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщениепосле ВСЕГО по смете объединенных ячеек в столбце А быть не должно!
[vba]
Code
Sub qqq()
Dim lastRow&, rRange As Range
Dim ind#
ind = 6.8
lastRow = Range("A" & Rows.Count).End(xlUp).Row
Rows(lastRow).Copy
Rows(lastRow & ":" & lastRow + 1).Insert Shift:=xlDown
     Application.CutCopyMode = False
     Range("A" & Rows.Count).End(xlUp).Offset(-2).Resize(2, 11).ClearContents
     Set rRange = Range("A" & Rows.Count).End(xlUp)
     rRange.Offset(-2) = "  ИТОГО по смете"
     rRange.Offset(-2, 1) = rRange.Offset(-9, 1)
     rRange.Offset(-1) = "  НДС от МР (18%) от (" & rRange.Offset(-7, 1) & " * " & ind & ")"
     rRange.Offset(-1, 1) = rRange.Offset(-7, 1) * ind * 0.18
     rRange.Offset(, 1) = rRange.Offset(-2, 1) + rRange.Offset(-1, 1)
     [D16] = rRange.Offset(, 1) / 1000
     [D17] = ind * 53.069
End Sub
[/vba]

Автор - RAN
Дата добавления - 30.11.2012 в 21:28
Alex_ST Дата: Пятница, 30.11.2012, 21:41 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Андрей,
ты всё-таки разобрался в этой лабуде?
Ну ты даёшь! Я в обед пол-часика поковырял, поубирал лишние Select'ы и заполнения ячеек под объединёнными biggrin , начал писать ответ-вопрос с уточнением, но пришлось срочно отвлечься на работу... А когда начал выключать комп, уходя с работы, увидел, что не закончил. Пришлось бросить без сохранения (я там что-то лишнее удалил и макрос начал врать).
А ты молодец! Добил-таки.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Пятница, 30.11.2012, 21:41
 
Ответить
СообщениеАндрей,
ты всё-таки разобрался в этой лабуде?
Ну ты даёшь! Я в обед пол-часика поковырял, поубирал лишние Select'ы и заполнения ячеек под объединёнными biggrin , начал писать ответ-вопрос с уточнением, но пришлось срочно отвлечься на работу... А когда начал выключать комп, уходя с работы, увидел, что не закончил. Пришлось бросить без сохранения (я там что-то лишнее удалил и макрос начал врать).
А ты молодец! Добил-таки.

Автор - Alex_ST
Дата добавления - 30.11.2012 в 21:41
RAN Дата: Пятница, 30.11.2012, 21:43 | Сообщение № 16
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Неааа, не до конца... biggrin


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеНеааа, не до конца... biggrin

Автор - RAN
Дата добавления - 30.11.2012 в 21:43
Alex_ST Дата: Пятница, 30.11.2012, 21:48 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Ты, к стати, обратил внимание, какой там UsedRange? Аж на 3 с лишним тысячи строк! И имён штук 5 лишних, а одно из них битое.
Когда я почистил, файл стал весить около 60 кило вместо бывших 200 с лишним.
А всё-таки проще всего, наверное, проименовать ячейки, куда нужно выводить данные и уже по именам обращаться к ним макросом. Тогда можно будет наплевать на изменения количества строк.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеТы, к стати, обратил внимание, какой там UsedRange? Аж на 3 с лишним тысячи строк! И имён штук 5 лишних, а одно из них битое.
Когда я почистил, файл стал весить около 60 кило вместо бывших 200 с лишним.
А всё-таки проще всего, наверное, проименовать ячейки, куда нужно выводить данные и уже по именам обращаться к ним макросом. Тогда можно будет наплевать на изменения количества строк.

Автор - Alex_ST
Дата добавления - 30.11.2012 в 21:48
RAN Дата: Пятница, 30.11.2012, 21:52 | Сообщение № 18
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Quote (Alex_ST)
проименовать ячейки, куда нужно выводить данные и уже по именам обращаться к ним макросом

Так поэтому и не работал.
Ячейки смещаются, а имена на месте.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Quote (Alex_ST)
проименовать ячейки, куда нужно выводить данные и уже по именам обращаться к ним макросом

Так поэтому и не работал.
Ячейки смещаются, а имена на месте.

Автор - RAN
Дата добавления - 30.11.2012 в 21:52
Alex_ST Дата: Пятница, 30.11.2012, 21:56 | Сообщение № 19
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
С чего бы это вдруг именованным ячейкам не смещаться при добавлении/удалении строк? Хотя там .Insert Shift:=xlDown зачем-то …

Просто не ясно, как (откуда) получается смета, которую потом обрабатывают макросом?



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеС чего бы это вдруг именованным ячейкам не смещаться при добавлении/удалении строк? Хотя там .Insert Shift:=xlDown зачем-то …

Просто не ясно, как (откуда) получается смета, которую потом обрабатывают макросом?

Автор - Alex_ST
Дата добавления - 30.11.2012 в 21:56
muxa Дата: Вторник, 04.12.2012, 12:33 | Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Файл каждый раз новый. Его формирует сметная программа. Макрос сидит в личной книге макросов.
Просто заказчик потребовал начислять НДС в конце сметы только на материалы, а программа таких вещей не понимает, надо дописывать вручную.
Я хотел это дело автоматизировать, но пока не получилось. (( Не хватает опыта и знаний
 
Ответить
СообщениеФайл каждый раз новый. Его формирует сметная программа. Макрос сидит в личной книге макросов.
Просто заказчик потребовал начислять НДС в конце сметы только на материалы, а программа таких вещей не понимает, надо дописывать вручную.
Я хотел это дело автоматизировать, но пока не получилось. (( Не хватает опыта и знаний

Автор - muxa
Дата добавления - 04.12.2012 в 12:33
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!