динамически запускать макросы при изменении значения | VBA | Excel | - PullRequest
0 голосов
/ 26 мая 2019

У меня есть Лист 1 и Лист

Лист 1 => https://paste.pics/6d48d50d54592eb1bdcb31e727b44958

Лист 2 => https://paste.pics/80f4230bf6819a80ed36e1b6415ece08

Значение Листа 1 => F5 =>Ссылка '50' => указана в листе 2 => E4 => '50'

Когда я ввожу значение в лист 1 вместо F5 => значение получает изменение в листе 2 => E4 => автоматически

Теперь проблема в том, что я хочу напечатать ДАННЫЕ 1 и ДАННЫЕ 2 Листа 2 => Сколько раз => сколько значений показано вместо Листа 2 => E4 [Положение] => на местеof COLUMN => 'I' и 'J'

Как показано ниже: Вывод: https://paste.pics/494c856d2908a83ca031ee20bb706a09

Мой код, который частично печатает только один вывод столбца, но должен напечатать 'RAM' и 'RAJ'=> COLUMN =>' I 'и' J '

Модуль: Sub mac ()

Dim ws As Worksheet
Dim rDest As Range
Dim lCount As Long
Dim sValue As String

Set ws = ThisWorkbook.Sheets("Sheet2")
Set rDest = ws.Range("I2")

With ws.Range(rDest, ws.Cells(ws.Rows.Count, rDest.Column).End(xlUp))
    If .Row >= rDest.Row Then .ClearContents
End With

lCount = Val(ws.Range("E4").Value)
sValue = ws.Range("E8").Value

If lCount > 0 Then rDest.Resize(lCount) = sValue

End Sub

Код листа 1:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Sheets("Sheet1").Range("F5"), Target) Is Nothing Then
       Call mac
    End If
End Sub

1 Ответ

0 голосов
/ 26 мая 2019

Если печать означает просто заполнение ячеек, вы можете использовать следующую подпункт. Измените код, чтобы настроить его с Worksheet_Change событие

Sub FillNames()
Dim ws As Worksheet
Dim i, destLen As Long

Set ws = Worksheets("Sheet2")
destLen = ws.Range("E4")

    For i = 1 To destLen
        ws.Cells(i + 1, "I") = ws.Range("E8")
        ws.Cells(i + 1, "J") = ws.Range("E12")
    Next

Set ws = Nothing
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...