У меня есть рабочий лист в рабочей книге с несколькими листами Workbook1
, который содержит некоторый код VBA, который выполняется при изменении значений определенных вычисляемых ячеек.Все работает хорошо.Однако, если эта рабочая книга активна, и я открываю другую рабочую книгу Workbook2
, не связанную с Workbook1
, кажется, что код VBA для Workbook1
пытается выполнить, и я получаю окно сообщения с ошибкой времени выполнения:
«9: нижний индекс вне диапазона»
сообщение.Как будто код для Workbook1 выполняется.Если я нажимаю кнопку DEBUG при ошибке во время выполнения, я вижу код для workbook1
.
Мне нужно ограничить выполнение определенного кода VBA Workbook1
, FEED_ANALYSIS
Sheet.
Включен код Workbook1
, прикрепленный к листу FEED_ANALYSIS
.
Заранее спасибо.
Private Sub Worksheet_Calculate()
Dim Cost_Per_day
Dim COST_kg
Dim COST_GROSS_kg
Dim AVG_SALES_PRICE
Dim COST_NET_PURCHASE
Dim PROFIT_GROSS
Dim PROFIT_NET
Dim PROFIT_NET_X
Dim Flag_set
Dim dtmTime As Date
Dim Rw As Long
'If Critical Cells change, move contents to Log sheet
Dim Xrg As Range
Set Xrg = Range("E5:I11")
If Not Intersect(Xrg, Range("E5:I11 ")) Is Nothing Then
dtmTime = Now()
Cost_Per_day = Worksheets("FEED_ANALYSIS").Range("E7").Value
COST_kg = Worksheets("FEED_ANALYSIS").Range("F7").Value
COST_GROSS_kg = Worksheets("FEED_ANALYSIS").Range("G7").Value
AVG_SALES_PRICE = Worksheets("FEED_ANALYSIS").Range("I5").Value
COST_NET_PURCHASE = Worksheets("FEED_ANALYSIS").Range("G11").Value
PROFIT_GROSS = Worksheets("FEED_ANALYSIS").Range("I7").Value
PROFIT_NET = Worksheets("FEED_ANALYSIS").Range("I8").Value
PROFIT_NET_X = Worksheets("FEED_ANALYSIS").Range("I9").Value
Rw = Sheets("LOG").Range("A" & Rows.Count).End(xlUp).Row + 1
With Sheets("LOG")
datcomp = .Cells(Rw - 1, 1)
' if the previous entry date is the same as the current date, do not create the entries... one entry per day
If Year(datcomp) = Year(dtmTime) And Month(datcomp) = Month(dtmTime) And Day(datcomp) = Day(dtmTime) Then GoTo NoUpd
.Cells(Rw, 1) = dtmTime
.Cells(Rw, 2) = Cost_Per_day
.Cells(Rw, 3) = COST_kg
.Cells(Rw, 4) = COST_GROSS_kg
.Cells(Rw, 5) = AVG_SALES_PRICE
.Cells(Rw, 6) = COST_NET_PURCHASE
.Cells(Rw, 7) = PROFIT_GROSS
.Cells(Rw, 8) = PROFIT_NET
.Cells(Rw, 9) = PROFIT_NET_X
.Cells(Rw, 11) = .Cells(Rw - 1, 1)
NoUpd:
End With
End If
End Sub