0
에서 사용할 때이 워크 시트를 활성화 할 때 내 통합 문서에서 하위를 통해 활성화 될 때 작동되지만, 기능 (사용 = FUNCTION_NAME (인수))엑셀 UDF 시트
Function calclkg(Optional table_name As String = "lkg_calc_params", Optional ByVal temp As Double = 110) As Double
SetTableValue table_name:=table_name, row_name:="Temp", col_name:="value", value:=temp
calclkg = GetValueFromTable(table_name:=table_name, row_name:="LKG calc", col_name:="value")
End Function
를 만들어 작동하지 않습니다
Sub Calc()
Dim temp As Double
temp = InputBox("temp:")
calclkg temp:=temp
End Sub
:
이 기능은이 일을 통해 함수를 호출하는 동안이
Sub SetTableValue(table_name As String, row_name As String, col_name As String, value As Variant, Optional ByVal sheet_name As Variant)
On Error GoTo errline
Dim WS As Worksheet
Dim wb As Workbook
Dim tbl As ListObject
Set WS = Application.Caller.Worksheet.Parent.Worksheets(sheet_name)
Set tbl = WS.ListObjects(table_name)
Dim Rhead As Range
Set Rhead = tbl.HeaderRowRange
col_index = Application.WorksheetFunction.Match(col_name, Rhead, 0)
Dim Rcol As Range
Set Rcol = tbl.ListColumns(1).DataBodyRange
row_index = Application.WorksheetFunction.Match(row_name, Rcol, 0)
' here is the line where I get the error:
tbl.ListColumns(col_index).DataBodyRange.Rows(row_index) = value
Exit Sub
errline:
MsgBox "Error # " & Err & " : " & Error(Err)
Resume Next
End Sub
을지고있어 오류를 생성이 하위를 호출, 내가 원하는 결과를 얻고있다
내가 직접 내 시트에서 함수를 호출 할 때이 줄을 사용하여 테이블 셀의 값을 업데이트 할 수 아니에요
tbl.ListColumns(col_index).DataBodyRange.Rows(row_index) = value
나는 여러 가지 방법을 시도했지만 그들 중 누구도 일했다 (1004 오류가 발생). like :
tbl.Range.Item(row_index + 1, col_index) = value
무엇이 잘못 되었나요?
당신은 다른 세포에 값을 할당 셀에 UDF를 사용할 수 없습니다. – Rory
나는 당신이 UDF가 필요하다고 당신이하려는 것을 묻고 싶습니다. VLOOKUP의 혜택을 누릴 수있는 것 같습니다. – peege