скопировать значения в другой лист Excel из меняющегося значения в Excel - PullRequest
0 голосов
/ 15 октября 2019

У меня есть макрос Excel, который ищет ближайшее значение в H1 в столбце, а затем ищет местоположение этого значения. Теперь я хочу выделить 5 ячеек выше и 5 ячеек ниже диапазона и вставить значение в другой лист.

У меня есть живой лист Excel, где среднее значение H1 постоянно меняется. Это означает, что местоположение ближайшего значения также постоянно меняется. Код, который я написал, правильно вставляет значение, но оно не изменяется автоматически при внесении изменений в H1.

. Поэтому я хочу, чтобы при изменении значения в H1 расположениезначение также должно измениться, и то же самое должно быть отражено в другой ячейке.

Приведенный ниже код работает нормально, если значение в H1 остается прежним, но я хочу, чтобы при каждом изменении значение также должно изменятьсяна другом листе.

    Range("B1").Select
    ActiveCell.FormulaR1C1 = "=Sheet1!R[-4]C[19]"'

скопируйте значение этой формулы с другого листа

    Range("B1").Select
    ActiveCell.FormulaR1C1 = "=Sheet1!R[-4]C[19]"'

Я хочу, чтобы строки в формуле были сделаны динамическими, чтобы их можно было изменить при изменениив месте другого значения.

1 Ответ

0 голосов
/ 15 октября 2019

Я не совсем понимаю ваш вопрос, но похоже, что вы хотите поместить код в Sheet1 в подпункт Works Works_Change (). Приведенный ниже код будет выполняться при изменении H1 в Sheet1, но мне не ясно, что именно вы хотите, чтобы произошло на другом листе (который я назвал «2»). Я пытался поставить что-то вроде того, что вы просили, но это не имеет смысла для меня.

Надеюсь, это даст вам старт или поможет уточнить ваш вопрос. Чтобы проверить код, поместите код в Sheet1 и измените значение H1. Код будет прерываться на линии остановки, чтобы вы могли изучить, что вы хотите сделать с редактором.

Option Explicit
Dim sh As Worksheet, r As Range
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$H$1" Then
    stop  'remove this once you've worked out the problems marked ? below
    Set sh = ThisWorkbook.Worksheets("2")
    sh.activate
    Set r = sh.Range("B1")
    r.FormulaR1C1 = "=Sheet1!R[-4]C[19]" '?
    r.copy                               '?
    sh.paste                             '?
  End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...