Относительная ссылка на ячейку
Xpert
Дата: Понедельник, 16.04.2018, 09:01 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Здравствуйте. Подскажите, пожалуйста, можно ли в VBA реализовать относительные ссылки на ячейку? В файле примера, макрос вставляет формулу в ячейку D14. Но, если добавить, или сократить количество строк в таблице(лист 1(2)), формула всё-равно продолжает вставляться в D14. А можно ли как-то сделать, чтобы адрес ячейки которую вставляется формула, смещался вместе с диапазоном?
Здравствуйте. Подскажите, пожалуйста, можно ли в VBA реализовать относительные ссылки на ячейку? В файле примера, макрос вставляет формулу в ячейку D14. Но, если добавить, или сократить количество строк в таблице(лист 1(2)), формула всё-равно продолжает вставляться в D14. А можно ли как-то сделать, чтобы адрес ячейки которую вставляется формула, смещался вместе с диапазоном? Xpert
Ответить
Сообщение Здравствуйте. Подскажите, пожалуйста, можно ли в VBA реализовать относительные ссылки на ячейку? В файле примера, макрос вставляет формулу в ячейку D14. Но, если добавить, или сократить количество строк в таблице(лист 1(2)), формула всё-равно продолжает вставляться в D14. А можно ли как-то сделать, чтобы адрес ячейки которую вставляется формула, смещался вместе с диапазоном? Автор - Xpert Дата добавления - 16.04.2018 в 09:01
sboy
Дата: Понедельник, 16.04.2018, 09:13 |
Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация:
724
±
Замечаний:
0% ±
Excel 2010
Добрый день. как вариант, искать последнюю строку и записывать формулу. [vba]Код
Sub Макрос3() 'Cells(14, 4).ClearContents Cells(Rows.Count, 4).End(xlUp).FormulaR1C1 = "=ROUND(R2C4*R1C3,2)" End Sub
[/vba]
Добрый день. как вариант, искать последнюю строку и записывать формулу. [vba]Код
Sub Макрос3() 'Cells(14, 4).ClearContents Cells(Rows.Count, 4).End(xlUp).FormulaR1C1 = "=ROUND(R2C4*R1C3,2)" End Sub
[/vba] sboy
Яндекс: 410016850021169
Ответить
Сообщение Добрый день. как вариант, искать последнюю строку и записывать формулу. [vba]Код
Sub Макрос3() 'Cells(14, 4).ClearContents Cells(Rows.Count, 4).End(xlUp).FormulaR1C1 = "=ROUND(R2C4*R1C3,2)" End Sub
[/vba] Автор - sboy Дата добавления - 16.04.2018 в 09:13
Xpert
Дата: Понедельник, 16.04.2018, 09:54 |
Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
как вариант, искать последнюю строку и записывать формулу.
sboy, спасибо. Но в реальной таблице, ниже D14 тоже будут строки. Как быть тогда?
как вариант, искать последнюю строку и записывать формулу.
sboy, спасибо. Но в реальной таблице, ниже D14 тоже будут строки. Как быть тогда?Xpert
Ответить
Сообщение как вариант, искать последнюю строку и записывать формулу.
sboy, спасибо. Но в реальной таблице, ниже D14 тоже будут строки. Как быть тогда?Автор - Xpert Дата добавления - 16.04.2018 в 09:54
sboy
Дата: Понедельник, 16.04.2018, 10:00 |
Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация:
724
±
Замечаний:
0% ±
Excel 2010
да по разному можно,я же не знаю как у Вас там все в реальном файле организовано. еще вариант сверху вниз [vba]Код
Sub Макрос3() Cells(3, 4).End(xlDown).FormulaR1C1 = "=ROUND(R2C4*R1C3,2)" End Sub
[/vba]
да по разному можно,я же не знаю как у Вас там все в реальном файле организовано. еще вариант сверху вниз [vba]Код
Sub Макрос3() Cells(3, 4).End(xlDown).FormulaR1C1 = "=ROUND(R2C4*R1C3,2)" End Sub
[/vba]sboy
Яндекс: 410016850021169
Ответить
Сообщение да по разному можно,я же не знаю как у Вас там все в реальном файле организовано. еще вариант сверху вниз [vba]Код
Sub Макрос3() Cells(3, 4).End(xlDown).FormulaR1C1 = "=ROUND(R2C4*R1C3,2)" End Sub
[/vba]Автор - sboy Дата добавления - 16.04.2018 в 10:00
Karataev
Дата: Понедельник, 16.04.2018, 10:22 |
Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация:
533
±
Замечаний:
0% ±
Excel
Xpert, в Excel'е есть такое понятие "поиск последней строки". Как раз в Вашем вопросе и нужно сделать поиск последней строки: [vba]Код
Sub Макрос3() Dim lr As Long 'поиск последней строки в столбце "D" lr = Cells(Rows.Count, "D").End(xlUp).Row + 1 Cells(lr, "D").FormulaR1C1 = "=ROUND(R2C4*R1C3,2)" End Sub
[/vba]
Xpert, в Excel'е есть такое понятие "поиск последней строки". Как раз в Вашем вопросе и нужно сделать поиск последней строки: [vba]Код
Sub Макрос3() Dim lr As Long 'поиск последней строки в столбце "D" lr = Cells(Rows.Count, "D").End(xlUp).Row + 1 Cells(lr, "D").FormulaR1C1 = "=ROUND(R2C4*R1C3,2)" End Sub
[/vba] Karataev
Ответить
Сообщение Xpert, в Excel'е есть такое понятие "поиск последней строки". Как раз в Вашем вопросе и нужно сделать поиск последней строки: [vba]Код
Sub Макрос3() Dim lr As Long 'поиск последней строки в столбце "D" lr = Cells(Rows.Count, "D").End(xlUp).Row + 1 Cells(lr, "D").FormulaR1C1 = "=ROUND(R2C4*R1C3,2)" End Sub
[/vba] Автор - Karataev Дата добавления - 16.04.2018 в 10:22
Xpert
Дата: Вторник, 17.04.2018, 09:44 |
Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Karataev, sboy, спасибо! То есть, аналогов экселевским относительным ссылкам, в VBA нет?
Karataev, sboy, спасибо! То есть, аналогов экселевским относительным ссылкам, в VBA нет? Xpert
Ответить
Сообщение Karataev, sboy, спасибо! То есть, аналогов экселевским относительным ссылкам, в VBA нет? Автор - Xpert Дата добавления - 17.04.2018 в 09:44
nilem
Дата: Вторник, 17.04.2018, 09:57 |
Сообщение № 7
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
Xpert , присвойте ячейке имя. В коде можно будет ссылаться на эту ячейку не по адресу, а по имени - что-то вроде относительной ссылки.
Xpert , присвойте ячейке имя. В коде можно будет ссылаться на эту ячейку не по адресу, а по имени - что-то вроде относительной ссылки.nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение Xpert , присвойте ячейке имя. В коде можно будет ссылаться на эту ячейку не по адресу, а по имени - что-то вроде относительной ссылки.Автор - nilem Дата добавления - 17.04.2018 в 09:57
Xpert
Дата: Вторник, 17.04.2018, 13:34 |
Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
nilem, спасибо, отличный вариант!
nilem, спасибо, отличный вариант! Xpert
Ответить
Сообщение nilem, спасибо, отличный вариант! Автор - Xpert Дата добавления - 17.04.2018 в 13:34
Xpert
Дата: Четверг, 26.04.2018, 11:32 |
Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Приветствую вас, дамы и господа. Почему-то не работает именованная ячейка(delvr)...По задумке, при клике на неё, должна появляться форма. Но на не появляется...Ткните, пожалуйста, где ошибка?
Приветствую вас, дамы и господа. Почему-то не работает именованная ячейка(delvr)...По задумке, при клике на неё, должна появляться форма. Но на не появляется...Ткните, пожалуйста, где ошибка? Xpert
Ответить
Сообщение Приветствую вас, дамы и господа. Почему-то не работает именованная ячейка(delvr)...По задумке, при клике на неё, должна появляться форма. Но на не появляется...Ткните, пожалуйста, где ошибка? Автор - Xpert Дата добавления - 26.04.2018 в 11:32
StoTisteg
Дата: Четверг, 26.04.2018, 11:39 |
Сообщение № 10
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация:
103
±
Замечаний:
0% ±
Excel 2010
Xpert , во-первых, сейчас придёт модератор и велит создать новую тему. Во-вторых [vba]Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target Is Range("delvr") Then Call delivery End Sub
[/vba] А разгадка почему не работает, проста — у Вас на листе просто нет ни одного имени. Вообще.
Xpert , во-первых, сейчас придёт модератор и велит создать новую тему. Во-вторых [vba]Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target Is Range("delvr") Then Call delivery End Sub
[/vba] А разгадка почему не работает, проста — у Вас на листе просто нет ни одного имени. Вообще.StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Сообщение отредактировал StoTisteg - Четверг, 26.04.2018, 13:53
Ответить
Сообщение Xpert , во-первых, сейчас придёт модератор и велит создать новую тему. Во-вторых [vba]Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target Is Range("delvr") Then Call delivery End Sub
[/vba] А разгадка почему не работает, проста — у Вас на листе просто нет ни одного имени. Вообще.Автор - StoTisteg Дата добавления - 26.04.2018 в 11:39
Xpert
Дата: Четверг, 26.04.2018, 14:27 |
Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
StoTisteg, не понял...в диспетчере имён всё указано же. "delvr" и прочее...
StoTisteg, не понял...в диспетчере имён всё указано же. "delvr" и прочее... Xpert
Ответить
Сообщение StoTisteg, не понял...в диспетчере имён всё указано же. "delvr" и прочее... Автор - Xpert Дата добавления - 26.04.2018 в 14:27
StoTisteg
Дата: Четверг, 26.04.2018, 16:44 |
Сообщение № 12
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация:
103
±
Замечаний:
0% ±
Excel 2010
Ну я не знаю. Я в макрос добавляю [vba]Код
Dim i As Integer i=Activesheet.Names.Count
[/vba]и в пошаговом прогоне вижу, что i имеет значение 0.
Ну я не знаю. Я в макрос добавляю [vba]Код
Dim i As Integer i=Activesheet.Names.Count
[/vba]и в пошаговом прогоне вижу, что i имеет значение 0. StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Ответить
Сообщение Ну я не знаю. Я в макрос добавляю [vba]Код
Dim i As Integer i=Activesheet.Names.Count
[/vba]и в пошаговом прогоне вижу, что i имеет значение 0. Автор - StoTisteg Дата добавления - 26.04.2018 в 16:44
StoTisteg
Дата: Четверг, 26.04.2018, 16:45 |
Сообщение № 13
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация:
103
±
Замечаний:
0% ±
Excel 2010
Всё. Увидел, где ступил...
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Сообщение отредактировал StoTisteg - Четверг, 26.04.2018, 16:51
Ответить
Сообщение Всё. Увидел, где ступил... Автор - StoTisteg Дата добавления - 26.04.2018 в 16:45
Xpert
Дата: Пятница, 27.04.2018, 11:30 |
Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Люююди! Подскажите, почему не работает макрос?
Люююди! Подскажите, почему не работает макрос? Xpert
Ответить
Сообщение Люююди! Подскажите, почему не работает макрос? Автор - Xpert Дата добавления - 27.04.2018 в 11:30
Pelena
Дата: Пятница, 27.04.2018, 11:37 |
Сообщение № 15
Группа: Админы
Ранг: Местный житель
Сообщений: 19163
Репутация:
4412
±
Замечаний:
±
Excel 365 & Mac Excel
Так попробуйте [vba]Код
If Target.Address = Range("delvr").Address Then
[/vba]
Так попробуйте [vba]Код
If Target.Address = Range("delvr").Address Then
[/vba] Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Так попробуйте [vba]Код
If Target.Address = Range("delvr").Address Then
[/vba] Автор - Pelena Дата добавления - 27.04.2018 в 11:37
Xpert
Дата: Суббота, 28.04.2018, 12:24 |
Сообщение № 16
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Pelena, спасибо огромное! Заработало!
Pelena, спасибо огромное! Заработало! Xpert
Ответить
Сообщение Pelena, спасибо огромное! Заработало! Автор - Xpert Дата добавления - 28.04.2018 в 12:24