Вставка формул макросом
Zoor
Дата: Пятница, 03.02.2017, 14:34 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Здравствуйте. Сделал нынче такой вот макрос, чтоб не прописывать каждый раз формулы [vba]Код
Sub Макрос11() ' ' Макрос11 ' ' ActiveCell.FormulaR1C1 = "=VLOOKUP(C[-2],[111.xlsx]Лист1!C1:C3,2,0)" Range("D2").Select ActiveCell.FormulaR1C1 = "=RC[-2]-RC[-1]" Range("E2").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(C[-4],[111.xlsx]Лист1!C1:C3,3,0)" Range("F2").Select ActiveCell.FormulaR1C1 = "10438" Range("C2:E2").Select Selection.AutoFill Destination:=Range("C2:E" & Cells(Rows.Count, 1).End(xlUp).Row) Range("F2").Select Selection.AutoFill Destination:=Range("F2:F" & Cells(Rows.Count, 1).End(xlUp).Row) End Sub
[/vba] Дома у меня работает все ок.( офис 2013) На работе 2010 офис выдает ошибку. method range fsailed. забыл как точно( И выделяется желтым строка с [vba]Код
Selection.AutoFill Destination:=Range("C2:E" & Cells(Rows.Count, 1).End(xlUp).Row)
[/vba] Подскажите что может быть?
Здравствуйте. Сделал нынче такой вот макрос, чтоб не прописывать каждый раз формулы [vba]Код
Sub Макрос11() ' ' Макрос11 ' ' ActiveCell.FormulaR1C1 = "=VLOOKUP(C[-2],[111.xlsx]Лист1!C1:C3,2,0)" Range("D2").Select ActiveCell.FormulaR1C1 = "=RC[-2]-RC[-1]" Range("E2").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(C[-4],[111.xlsx]Лист1!C1:C3,3,0)" Range("F2").Select ActiveCell.FormulaR1C1 = "10438" Range("C2:E2").Select Selection.AutoFill Destination:=Range("C2:E" & Cells(Rows.Count, 1).End(xlUp).Row) Range("F2").Select Selection.AutoFill Destination:=Range("F2:F" & Cells(Rows.Count, 1).End(xlUp).Row) End Sub
[/vba] Дома у меня работает все ок.( офис 2013) На работе 2010 офис выдает ошибку. method range fsailed. забыл как точно( И выделяется желтым строка с [vba]Код
Selection.AutoFill Destination:=Range("C2:E" & Cells(Rows.Count, 1).End(xlUp).Row)
[/vba] Подскажите что может быть? Zoor
Сообщение отредактировал Zoor - Пятница, 03.02.2017, 14:35
Ответить
Сообщение Здравствуйте. Сделал нынче такой вот макрос, чтоб не прописывать каждый раз формулы [vba]Код
Sub Макрос11() ' ' Макрос11 ' ' ActiveCell.FormulaR1C1 = "=VLOOKUP(C[-2],[111.xlsx]Лист1!C1:C3,2,0)" Range("D2").Select ActiveCell.FormulaR1C1 = "=RC[-2]-RC[-1]" Range("E2").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(C[-4],[111.xlsx]Лист1!C1:C3,3,0)" Range("F2").Select ActiveCell.FormulaR1C1 = "10438" Range("C2:E2").Select Selection.AutoFill Destination:=Range("C2:E" & Cells(Rows.Count, 1).End(xlUp).Row) Range("F2").Select Selection.AutoFill Destination:=Range("F2:F" & Cells(Rows.Count, 1).End(xlUp).Row) End Sub
[/vba] Дома у меня работает все ок.( офис 2013) На работе 2010 офис выдает ошибку. method range fsailed. забыл как точно( И выделяется желтым строка с [vba]Код
Selection.AutoFill Destination:=Range("C2:E" & Cells(Rows.Count, 1).End(xlUp).Row)
[/vba] Подскажите что может быть? Автор - Zoor Дата добавления - 03.02.2017 в 14:34
_Boroda_
Дата: Пятница, 03.02.2017, 14:52 |
Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация:
6481
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
А не вставляете ли Вы случайно формулы в файл .xls? Не .xlsx, xlsb, xlsm, а именно в старый формат файла
А не вставляете ли Вы случайно формулы в файл .xls? Не .xlsx, xlsb, xlsm, а именно в старый формат файла _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение А не вставляете ли Вы случайно формулы в файл .xls? Не .xlsx, xlsb, xlsm, а именно в старый формат файла Автор - _Boroda_ Дата добавления - 03.02.2017 в 14:52
Zoor
Дата: Пятница, 03.02.2017, 16:14 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
случайно нет
Ответить
Сообщение случайно нет Автор - Zoor Дата добавления - 03.02.2017 в 16:14
Manyasha
Дата: Пятница, 03.02.2017, 16:19 |
Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация:
898
±
Замечаний:
0% ±
Excel 2010, 2016
Zoor , покажите файл, в котором возникает ошибка.
Zoor , покажите файл, в котором возникает ошибка.Manyasha
ЯД: 410013299366744 WM: R193491431804
Ответить
Сообщение Zoor , покажите файл, в котором возникает ошибка.Автор - Manyasha Дата добавления - 03.02.2017 в 16:19
Wasilich
Дата: Пятница, 03.02.2017, 16:21 |
Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация:
326
±
Замечаний:
0% ±
2003
На всякий случай [vba]Код
Cells(Rows.Count, 1).End(xlUp).Row)
[/vba]Определяет последнюю заполненную ячейку столбца 1, ну или А. Там есть данные?
На всякий случай [vba]Код
Cells(Rows.Count, 1).End(xlUp).Row)
[/vba]Определяет последнюю заполненную ячейку столбца 1, ну или А. Там есть данные? Wasilich
Ответить
Сообщение На всякий случай [vba]Код
Cells(Rows.Count, 1).End(xlUp).Row)
[/vba]Определяет последнюю заполненную ячейку столбца 1, ну или А. Там есть данные? Автор - Wasilich Дата добавления - 03.02.2017 в 16:21
Zoor
Дата: Пятница, 03.02.2017, 16:36 |
Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Определяет последнюю заполненную ячейку столбца 1, ну или А. Там есть данные?
ессно. для этого я и добавил. кста если просто указа диапазон C2:E100 к примеру, то макрос работает. но кол-во строк всегда разное. и куча формул с #знач. очень не нравиться начальству:)Zoor, покажите файл, в котором возникает ошибка.
не могу скачать. т ккак все заблочено айтишнегами
Определяет последнюю заполненную ячейку столбца 1, ну или А. Там есть данные?
ессно. для этого я и добавил. кста если просто указа диапазон C2:E100 к примеру, то макрос работает. но кол-во строк всегда разное. и куча формул с #знач. очень не нравиться начальству:)Zoor, покажите файл, в котором возникает ошибка.
не могу скачать. т ккак все заблочено айтишнегамиZoor
Сообщение отредактировал Zoor - Пятница, 03.02.2017, 16:41
Ответить
Сообщение Определяет последнюю заполненную ячейку столбца 1, ну или А. Там есть данные?
ессно. для этого я и добавил. кста если просто указа диапазон C2:E100 к примеру, то макрос работает. но кол-во строк всегда разное. и куча формул с #знач. очень не нравиться начальству:)Zoor, покажите файл, в котором возникает ошибка.
не могу скачать. т ккак все заблочено айтишнегамиАвтор - Zoor Дата добавления - 03.02.2017 в 16:36
Kamikadze_N
Дата: Пятница, 03.02.2017, 16:48 |
Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация:
6
±
Замечаний:
0% ±
Excel 2010
Zoor, всмысле заблокировано, а как тогда вы его дома запускаете?
Zoor, всмысле заблокировано, а как тогда вы его дома запускаете? Kamikadze_N
Ответить
Сообщение Zoor, всмысле заблокировано, а как тогда вы его дома запускаете? Автор - Kamikadze_N Дата добавления - 03.02.2017 в 16:48
Zoor
Дата: Пятница, 03.02.2017, 16:52 |
Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
создал файлик. записал макрос. запустил. както так.. все идентично, кроме путей к файлам)
создал файлик. записал макрос. запустил. както так.. все идентично, кроме путей к файлам) Zoor
Сообщение отредактировал Zoor - Пятница, 03.02.2017, 16:54
Ответить
Сообщение создал файлик. записал макрос. запустил. както так.. все идентично, кроме путей к файлам) Автор - Zoor Дата добавления - 03.02.2017 в 16:52
Wasilich
Дата: Пятница, 03.02.2017, 17:09 |
Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация:
326
±
Замечаний:
0% ±
2003
если просто указа диапазон C2:E100 к примеру, то макрос работает.
Попробуйте через переменную. [vba]Код
S=Cells(Rows.Count, 1).End(xlUp).Row
[/vba] и далее [vba][/vba]
если просто указа диапазон C2:E100 к примеру, то макрос работает.
Попробуйте через переменную. [vba]Код
S=Cells(Rows.Count, 1).End(xlUp).Row
[/vba] и далее [vba][/vba]Wasilich
Ответить
Сообщение если просто указа диапазон C2:E100 к примеру, то макрос работает.
Попробуйте через переменную. [vba]Код
S=Cells(Rows.Count, 1).End(xlUp).Row
[/vba] и далее [vba][/vba]Автор - Wasilich Дата добавления - 03.02.2017 в 17:09
Zoor
Дата: Суббота, 04.02.2017, 14:25 |
Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
S=Cells(Rows.Count, 1).End(xlUp).Row
сделал( опять же дома все ок. на работе выдает application-defined or object definded error и выделяет [vba]Код
s = Cells(Rows.Count, 1).End(xlUp).Row
[/vba]
S=Cells(Rows.Count, 1).End(xlUp).Row
сделал( опять же дома все ок. на работе выдает application-defined or object definded error и выделяет [vba]Код
s = Cells(Rows.Count, 1).End(xlUp).Row
[/vba]Zoor
Сообщение отредактировал Zoor - Суббота, 04.02.2017, 14:29
Ответить
Сообщение S=Cells(Rows.Count, 1).End(xlUp).Row
сделал( опять же дома все ок. на работе выдает application-defined or object definded error и выделяет [vba]Код
s = Cells(Rows.Count, 1).End(xlUp).Row
[/vba]Автор - Zoor Дата добавления - 04.02.2017 в 14:25
Manyasha
Дата: Суббота, 04.02.2017, 14:47 |
Сообщение № 11
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация:
898
±
Замечаний:
0% ±
Excel 2010, 2016
Zoor, покажите файл, в котором возникает ошибка.
С домашнего компьютера-то можете файл загрузить? Или попробуйте сохранить без поддержки макросов и приложить к посту. У меня все работает. Без Вашего файла остается только гадать.
Zoor, покажите файл, в котором возникает ошибка.
С домашнего компьютера-то можете файл загрузить? Или попробуйте сохранить без поддержки макросов и приложить к посту. У меня все работает. Без Вашего файла остается только гадать.Manyasha
ЯД: 410013299366744 WM: R193491431804
Ответить
Сообщение Zoor, покажите файл, в котором возникает ошибка.
С домашнего компьютера-то можете файл загрузить? Или попробуйте сохранить без поддержки макросов и приложить к посту. У меня все работает. Без Вашего файла остается только гадать.Автор - Manyasha Дата добавления - 04.02.2017 в 14:47
Zoor
Дата: Четверг, 23.02.2017, 21:05 |
Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Еле скачал файл. и опять же у меня макрос работает. на работе нет...
Еле скачал файл. и опять же у меня макрос работает. на работе нет... Zoor
Ответить
Сообщение Еле скачал файл. и опять же у меня макрос работает. на работе нет... Автор - Zoor Дата добавления - 23.02.2017 в 21:05
Alex_ST
Дата: Четверг, 23.02.2017, 23:27 |
Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация:
609
±
Замечаний:
0% ±
2003
Ну, ввиду наличия отсутствия у меня на компе файла D:\xpps\05 Offene Fertigungsauftraege X1.xls , да ещё и на Excel-2003 проверить работу Вашего макроса затруднительно… Но попробуйте всё-таки в своём макросе не использовать обращение к диапазонам активного листа по умолчанию, а всё-таки указывать имя листа, на который Вы хотите добавить формулы. Т.е. просто заключите все процедуры в With Worksheets("SCANNER") .... End With а вместо Range напишите .Range , вместо Rows .Rows , вместо Cells .Cells и т.п.
Ну, ввиду наличия отсутствия у меня на компе файла D:\xpps\05 Offene Fertigungsauftraege X1.xls , да ещё и на Excel-2003 проверить работу Вашего макроса затруднительно… Но попробуйте всё-таки в своём макросе не использовать обращение к диапазонам активного листа по умолчанию, а всё-таки указывать имя листа, на который Вы хотите добавить формулы. Т.е. просто заключите все процедуры в With Worksheets("SCANNER") .... End With а вместо Range напишите .Range , вместо Rows .Rows , вместо Cells .Cells и т.п. Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Четверг, 23.02.2017, 23:28
Ответить
Сообщение Ну, ввиду наличия отсутствия у меня на компе файла D:\xpps\05 Offene Fertigungsauftraege X1.xls , да ещё и на Excel-2003 проверить работу Вашего макроса затруднительно… Но попробуйте всё-таки в своём макросе не использовать обращение к диапазонам активного листа по умолчанию, а всё-таки указывать имя листа, на который Вы хотите добавить формулы. Т.е. просто заключите все процедуры в With Worksheets("SCANNER") .... End With а вместо Range напишите .Range , вместо Rows .Rows , вместо Cells .Cells и т.п. Автор - Alex_ST Дата добавления - 23.02.2017 в 23:27
Zoor
Дата: Вторник, 28.02.2017, 02:05 |
Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
если так [vba]Код
With Range("C2:E" & Cells(Rows.Count, 2).End(xlUp).Row) .Rows(1).AutoFill Destination:=.Cells End With
[/vba] опять выдает application-defined or object definded error
если так [vba]Код
With Range("C2:E" & Cells(Rows.Count, 2).End(xlUp).Row) .Rows(1).AutoFill Destination:=.Cells End With
[/vba] опять выдает application-defined or object definded error Zoor
Ответить
Сообщение если так [vba]Код
With Range("C2:E" & Cells(Rows.Count, 2).End(xlUp).Row) .Rows(1).AutoFill Destination:=.Cells End With
[/vba] опять выдает application-defined or object definded error Автор - Zoor Дата добавления - 28.02.2017 в 02:05
bmv98rus
Дата: Вторник, 28.02.2017, 07:54 |
Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4110
Репутация:
768
±
Замечаний:
0% ±
Excel 2013/2016
Zoor , Вы можете посмотреть в отладчике или любым образом другим что выдает [vba][/vba]? В целом похоже на сбой Excel
Zoor , Вы можете посмотреть в отладчике или любым образом другим что выдает [vba][/vba]? В целом похоже на сбой Excelbmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Вторник, 28.02.2017, 08:03
Ответить
Сообщение Zoor , Вы можете посмотреть в отладчике или любым образом другим что выдает [vba][/vba]? В целом похоже на сбой ExcelАвтор - bmv98rus Дата добавления - 28.02.2017 в 07:54
Gustav
Дата: Вторник, 28.02.2017, 08:44 |
Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация:
1137
±
Замечаний:
0% ±
начинал с Excel 4.0, видел 2.1
Поддерживаю. Надо посмотреть в момент ошибки в Окне отладки что выдает оператор: [vba][/vba] 65536 или 1048576? Если вдруг второе (большее), то всё, думаю, ясно: файл-то - старого формата XLS, c 65536 строками. P.S. И в сообщении №1 (на работе?) в коде указан файл типа XLSX, а в сообщении №12 (дома?) - файл типа XLS. Возможно, в момент доступа к XSLX и происходит перескок Rows.Count с 65536 на 1048576. Но это всё пока мои домыслы - проверяйте-проверяйте!
Поддерживаю. Надо посмотреть в момент ошибки в Окне отладки что выдает оператор: [vba][/vba] 65536 или 1048576? Если вдруг второе (большее), то всё, думаю, ясно: файл-то - старого формата XLS, c 65536 строками. P.S. И в сообщении №1 (на работе?) в коде указан файл типа XLSX, а в сообщении №12 (дома?) - файл типа XLS. Возможно, в момент доступа к XSLX и происходит перескок Rows.Count с 65536 на 1048576. Но это всё пока мои домыслы - проверяйте-проверяйте! Gustav
МОИ: Ник , Tip box: 41001663842605
Сообщение отредактировал Gustav - Вторник, 28.02.2017, 08:50
Ответить
Сообщение Поддерживаю. Надо посмотреть в момент ошибки в Окне отладки что выдает оператор: [vba][/vba] 65536 или 1048576? Если вдруг второе (большее), то всё, думаю, ясно: файл-то - старого формата XLS, c 65536 строками. P.S. И в сообщении №1 (на работе?) в коде указан файл типа XLSX, а в сообщении №12 (дома?) - файл типа XLS. Возможно, в момент доступа к XSLX и происходит перескок Rows.Count с 65536 на 1048576. Но это всё пока мои домыслы - проверяйте-проверяйте! Автор - Gustav Дата добавления - 28.02.2017 в 08:44
_Boroda_
Дата: Вторник, 28.02.2017, 09:08 |
Сообщение № 17
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация:
6481
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Вот-вот, именно про это я и писал во втором посте А не вставляете ли Вы случайно формулы в файл .xls?
Периодически случается такое. Если строк с данными в файле меньше 65536 (по идее так и должно быть, иначе Вы не смогли бы работать в xls), то обычно помогает замена вот этого [vba]Код
Cells(Rows.Count, 1).End(xlUp).Row
[/vba] на вот это [vba]Код
Cells(65500, 1).End(xlUp).Row
[/vba]
Вот-вот, именно про это я и писал во втором посте А не вставляете ли Вы случайно формулы в файл .xls?
Периодически случается такое. Если строк с данными в файле меньше 65536 (по идее так и должно быть, иначе Вы не смогли бы работать в xls), то обычно помогает замена вот этого [vba]Код
Cells(Rows.Count, 1).End(xlUp).Row
[/vba] на вот это [vba]Код
Cells(65500, 1).End(xlUp).Row
[/vba] _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Вот-вот, именно про это я и писал во втором посте А не вставляете ли Вы случайно формулы в файл .xls?
Периодически случается такое. Если строк с данными в файле меньше 65536 (по идее так и должно быть, иначе Вы не смогли бы работать в xls), то обычно помогает замена вот этого [vba]Код
Cells(Rows.Count, 1).End(xlUp).Row
[/vba] на вот это [vba]Код
Cells(65500, 1).End(xlUp).Row
[/vba] Автор - _Boroda_ Дата добавления - 28.02.2017 в 09:08
bmv98rus
Дата: Вторник, 28.02.2017, 09:21 |
Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4110
Репутация:
768
±
Замечаний:
0% ±
Excel 2013/2016
Ну и для данного конкретного случая можно использовать [vba]Код
Range("a1").End(xlDown).row
[/vba] вроде пропусков там не придвидится.
Ну и для данного конкретного случая можно использовать [vba]Код
Range("a1").End(xlDown).row
[/vba] вроде пропусков там не придвидится. bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Вторник, 28.02.2017, 09:23
Ответить
Сообщение Ну и для данного конкретного случая можно использовать [vba]Код
Range("a1").End(xlDown).row
[/vba] вроде пропусков там не придвидится. Автор - bmv98rus Дата добавления - 28.02.2017 в 09:21
Zoor
Дата: Четверг, 02.03.2017, 11:20 |
Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
создал файл в .хlsm и та же петрушка не совсем понял как это посмотреть
создал файл в .хlsm и та же петрушка не совсем понял как это посмотреть Zoor
Ответить
Сообщение создал файл в .хlsm и та же петрушка не совсем понял как это посмотреть Автор - Zoor Дата добавления - 02.03.2017 в 11:20
Gustav
Дата: Четверг, 02.03.2017, 11:28 |
Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация:
1137
±
Замечаний:
0% ±
начинал с Excel 4.0, видел 2.1
Да вбейте уже константу 65500 и забудьте! обычно помогает замена вот этого Cells(Rows.Count, 1).End(xlUp).Row на вот это Cells(65500, 1).End(xlUp).Row
P.S. А Rows.Count надо смотреть во время выполнения (отладки) в Окне отладки в редакторе Visual Basic (Alt+F11, Ctrl+G).
Да вбейте уже константу 65500 и забудьте! обычно помогает замена вот этого Cells(Rows.Count, 1).End(xlUp).Row на вот это Cells(65500, 1).End(xlUp).Row
P.S. А Rows.Count надо смотреть во время выполнения (отладки) в Окне отладки в редакторе Visual Basic (Alt+F11, Ctrl+G). Gustav
МОИ: Ник , Tip box: 41001663842605
Сообщение отредактировал Gustav - Четверг, 02.03.2017, 11:32
Ответить
Сообщение Да вбейте уже константу 65500 и забудьте! обычно помогает замена вот этого Cells(Rows.Count, 1).End(xlUp).Row на вот это Cells(65500, 1).End(xlUp).Row
P.S. А Rows.Count надо смотреть во время выполнения (отладки) в Окне отладки в редакторе Visual Basic (Alt+F11, Ctrl+G). Автор - Gustav Дата добавления - 02.03.2017 в 11:28