2014-09-23 2 views
0

После попытки нескольких разных подходов я застрял. В основном у меня есть таблица, где линия заканчивается каждые 30 минут или около того. Пользователь вводит 3 числа подряд, вычисляются следующие 3 строки. Я хотел бы использовать одну из вычисленных строк в качестве триггера для копирования всей строки на лист БД (лист2). И повторяйте, когда добавляется следующая строка и так далее. Кажется, я получаю только 1-ю строку, которая будет копироваться каждый раз.Скопируйте строку в лист базы данных на основе вычисленного триггера

Лист используется как печатная запись в печатном виде, поэтому я уклонился от создания ФОРМЫ. Я начал со следующим, который работал на линию 1 (также вызов в отчете о макросе для копирования в некоторых данных заголовка)

`Private Sub Worksheet_Calculate() 
If IsNumeric(Range("$h$9")) Then 
    If Range("$h$9").Value >= 1 Then 
     Application.Run "Macro1" 
    End If 
End If 
End Sub ` 

Macro1 просто скопировать некоторые данные формы заголовка (дата/время, машина информации и т.д., что является вводится только один раз для листа & строки, описанной выше).

Я надеюсь, что это понятно, любые вопросы, пожалуйста, дайте мне знать

ответ

0

Добро пожаловать на SO

Попробуйте с помощью цикла, как показано ниже? Измените верхний предел i, как вы хотите, и, возможно, используете какую-либо форму счетчика строк, например Cells(Rows.Count, 1).End(xlUp).Row

Private Sub Worksheet_Calculate() 
Dim i As Integer 
For i = 1 To 9000 
If IsNumeric(Cells(i, 8)) Then 
    If Cells(i, 8).Value >= 1 Then 
     Application.Run "Macro1" 
    End If 
End If 
Next i 
End Sub