VBA: как передать ячейку.Address() в полезный формат sheet.range.select, чтобы я мог поместить новое значение в ячейку

#excel #vba

#excel #vba

Вопрос:

Привет, это вопрос vba. У меня есть определенный пользователем диапазон (Response1) ячеек, на который я затем ссылаюсь, используя для каждой ячейки в Response1 конструкцию цикла диапазона. С чем я борюсь, так это с тем, что при циклическом просмотре для каждой ячейки в Response1 я хочу итеративно изменять значение, смежное с текущей ячейкой, которая активна в цикле. Я дошел до использования Cell.Address() для определения адреса текущей активной ячейки (например, $ B $ 3 $), но я не могу понять, как затем использовать эту ячейку.Address(), чтобы фактически указать sheet.range (адрес ячейки). смещение (0,1). значение = желаемое значение. Любая помощь была бы очень признательна! Заранее всем спасибо! Будьте в безопасности и с наилучшими пожеланиями.

Вот пример моего кода:

 
For Each Cell In Response1
For cnter = 1 To FinalRow
    If Application.WorksheetFunction.Trim(Cells(cnter, 3)) = Cell.Value Then
    add = Cell.Address()
    'Now put a myvalue in the cell adjacent to the current Cell being looked at:
    'NEED HELP: Sheets("Quadrants").Range("add" variable here).Offset(0,1).value = myvalue
    End If
Next cnter
Next Cell
  

Комментарии:

1. Не используйте адрес. Просто используйте Cell.Offset(,1) .

2. Если я неправильно понял ваш вопрос, и вы хотите использовать адрес Cell , но ссылаетесь на другой лист, тогда просто Sheets("Quadrants").Range(add).Offset(0,1) — без кавычек.

3. Привет, БигБен, большое спасибо за вашу помощь! Я чувствую себя таким новичком, это было намного проще, чем я думал. Я даже не думал просто попробовать, потому что думал, что это должно быть сложнее. Спасибо!

4. @BigBen Большое вам спасибо!