내가 VBA에서 일하고 있어요 - Excel을 2016 내가 다른 시트 및 삽입에 다음 빈 행을 한 장에서 호출 정의 폼에서 입력을 찾기 위해 노력하고'객체의 범위는'실패 - 사용자 정의 폼
가치. 그러나 런타임 오류 - 'Range of Object'_Worksheet Failed가 계속 발생합니다. 양식은 다른 양식에서 호출됩니다.
다양한 솔루션을 시도했지만 아무 것도 작동하지 않는 것 같습니다.
나는 다른 곳에서 거의 동일한 코드를 사용하고 있는데, 폼이 호출되고 값이 같은 시트에 삽입 될 때 작동하기 때문에 다른 시트에 액세스해야한다는 결론을 내렸다.
그것은이 라인에 실패
이ActiveWorkbook.Worksheets("Suppliers").Range("A" & NextRow) = SupplierName
내가 사용하고 코드는 다음과 같습니다.
Private Sub addSupplierConfirm_Click()
'Initialise variables
Dim SupplierName As String
'Assign variables
SupplierName = addSupplierName.Value
If (SupplierName = "") Then
MsgBox ("Please enter a supplier name")
Exit Sub
End If
'Find next row on supplier sheet add supplier name
NextRow = ActiveWorkbook.Worksheets("Suppliers").Range("A" & Rows.Count).End(xlUp).Row + 1
ActiveWorkbook.Worksheets("Suppliers").Range("A" & NextRow) = SupplierName
Application.ScreenUpdating = False
'Sort Suppliers
ActiveWorkbook.Worksheets("Suppliers").ListObjects("tbl_suppliers").Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets("Suppliers").ListObjects("tbl_suppliers").Sort.SortFields. _
Add Key:=Range("tbl_suppliers[[#All],[Suppliers]]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Suppliers").ListObjects("tbl_suppliers").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Activate home page
Sheets("Expenses").Activate
Range("A1").Select
Application.ScreenUpdating = True
'Unload form
addSupplierName.Value = ""
UfAddSupplier.Hide
End Sub
미리 감사드립니다.
안녕하세요, 감사합니다. 'NextRow'가 양수이고'Suppliers'가 선행/후행 공백과 함께 존재하는지 확인했습니다. 이제이 런타임 오류가 발생했습니다. "Object 'Range'의 'Value2'메서드가 실패했습니다." 값이 테이블의 맨 아래에 추가되고 있지만 런타임 오류로 인해 나머지 코드가 실행되지 않는 것으로 추측됩니다. –
'ThisWorkbook.Worksheets ("Suppliers"). Range ("A"& NextRow) .Value2 = SupplierName'을 사용하여 제안한 의견에서 이전에 'Value2'를 추가했습니다. 해당 코드에서 코드가 실패합니다. –
'addSupplierName.Value'는 입력 값과 동일한 값을 반환합니다. 어쨌든 도움을 주셔서 감사합니다. 다른 해결책을 찾아야 할 것 같습니다. –