Я уже отчаялся!
Я построил функцию ниже. Cday относится к ячейке в Excel с датой, например 01/01/2017.
он сопоставляет и находит строку и столбец набора данных и вводит их в массив (dpricebase), который я заранее заполнил данными через подпрограмму
Я написал небольшой подпункт, который вызывает это, и он работает. Я пытаюсь использовать его прямо в Excel, но это не так!
Пожалуйста, помогите!
благодарю вас!
Function findprice (cday, commno)
cday = DateValue(cday)
price1 = 0
If cday > lastday Then ‘last day is a date xx/xx/xxxx at a cell in the excel
price1 = 0
GoTo result
End If
Windows("m.xls").Activate
Sheets("Daily").Activate
‘find the matching row
For x = 5 To lastrow
If DateValue(Cells(x, 2)) = cday Then
datarow = Cells(x, 2).Row - 5
GoTo Continue1
End If
Next x
MsgBox "No data for " & cday & " for " & commno
Continue1:
'find the matching column
For y = 3 To totalcomm
If Cells(2, y) = commno Then
datacol = Cells(2, y).Column - 3
GoTo Continue2
End If
Next y
MsgBox "No Daily data for No." & commno
Continue2:
price1 = dpricebase(datarow, datacol)
GoTo result
result:
findprice = price1
End Function
Windows....Activate
,Sheets...Activate
, а также удалитьmsgbox...
и т. Д. - person Kazimierz Jawor   schedule 05.01.2017lastrow
иtotalcomm
, чтобы этот код функционировал как UDF - person Shai Rado   schedule 05.01.2017