Range.Offset - Новый курс VBA (6)
HTML-код
- Опубликовано: 7 авг 2020
- Ссылка на скачивание файла для упражнения:
drive.google.com/file/d/1Dlad...
Привет! В нашем курсе мы уже наработали самую важную основу знаний работы в VBA. Теперь мы с тобой начинаем изучать важные команды в VBA, которые зачастую приходится использовать для выполнения определенных поставленных задач. Подобной тематикой этого видео является свойство Offset объекта Range.
Свойство Offset служит для «смещения» выбора определенной ячейки, или нескольких ячеек. В этом видео мы узнаем, как применять свойство Offset в своем коде. Как всегда в конце видео тебя ожидает практическое упражнения для закрепления новых знаний.
Приятного просмотра! 😊
Билял, спасибо! Offset использую часто в своих программках, это удобно и в циклах, и в функциях даже. Пояснение материала достойное, как и всегда!!! Так держать!
Билял, спасибо. Замечательная подача материала!
Спасибо за труд!
Отличный курс!
Отличный материал. Спасибо!
Спасибо, отличные уроки! С удовольствием все смотрю.
Но есть нюанс. Использование кириллицы в названии файла для упражнения - зло. А учитывая то, что я работаю на маке - это прямо таки зло в квадрате. Вместо названий цветочки да иероглифы. О истинном тексте узнала из видео.
Готово
Добрый день. Когда указываешь путь на объект с русским названием, отображаются. Одни вопросы???? Кирилицу vba не понимает. Что делать?
У меня так было, когда я копипастил адрес из проводника windows в код VBA. В этом случае нужно просто вручную все вопросы заменить в коде VBA русскими букавами - и всё должно заработать.
Спасибо, Билял! Отличный курс, с удовольствием его смотрю и выполняю упражнения! Есть вопрос по данному уроку. Я задал смещения по строкам и столбцам переменными Integer. А дальше я создал переменную типа String и попытался ей присвоить значение текста, который написан у тебя в коде после Debug.Print - ведь по сути эта строчка не меняется, а меняются только переменные смещения. Но почему-то такой вариант у меня не сработал. Каждый раз дебаг выводит одно и то же значение. Код выглядит следующим образом:
Dim rgStartCell As Range
Set rgStartCell = ThisWorkbook.Worksheets("Orders").Range("D4")
Dim intRwOff As Integer
Dim intClOff As Integer
Dim strPhrase As String
strPhrase = rgStartCell.Offset(intRwOff, intClOff).Address & " - " & rgStartCell.Offset(intRwOff, intClOff)
intRwOff = -1
intClOff = -2
Debug.Print strPhrase
intRwOff = 9
intClOff = -2
Debug.Print strPhrase
Приветствую! чем моё решение хуже предложенного автором? какую функцию здесь играет Value?
Sub test()
Dim rgTestcell As Range
Set rgTestcell = ThisWorkbook.Worksheets(1).Range("D4")
Debug.Print rgTestcell.Offset(-1, -2).Address & "-" & rgTestcell.Offset(-1, -2)
Debug.Print rgTestcell.Offset(9, -2).Address & "-" & rgTestcell.Offset(9, -2)
Debug.Print rgTestcell.Offset(-1, 6).Address & "-" & rgTestcell.Offset(-1, 6)
Debug.Print rgTestcell.Offset(9, 6).Address & "-" & rgTestcell.Offset(9, 6)
End Sub
Решение сработало точно также, результата я добился)
я понял ответ на первый вопрос, только с Value не разобрался
@@user-mr6ef9qm8x Value это просто значение чего либо. Идет по умолчанию, если даже его не писать. У тебя в коде нет целевой ячейки как у автора. Она переменная и смещена относительно первой ячейки.