Я пытаюсь получить доступ к записи в две ячейки книги Excel при каждом заполнении формы.
При использовании Range().End()
.
* я получаю ошибку 1004. 1005 *
R
и
C
- это переменные, которые я использую для изоляции функций, чтобы выяснить причину проблемы.
Option Compare Database
Private Sub Form_AfterUpdate()
'This macro will update the Excel WO Tracker for a project each time an NCR is closed or resolved
Dim xl As Object 'Excel
Dim tracker As Object 'Book
Dim sn As Object 'Sheet\
Dim connect(1) As Variant 'WO and NCR#
'Debugging variables
Dim R As Object
Dim C As Object
'Exit if required fields are blank
If (Title.Value = "") Or (status.Value = "") Or (Program.Value = "") Or _
(Disposition.Value = "") Or ([Work Order Number].Value = "") Then
Exit Sub
End If
'On Error GoTo Handler
If (status.Value = "Closed") Or (status.Value = "Resolved") Then
Set xl = CreateObject("Excel.Application")
xl.ScreenUpdating = False
Select Case Program.Value
Case "SE07"
Set tracker = xl.Workbooks.Open("Z:\Operations\Projects\SE07\" & Year(Now()) & " SE07 WO Tracker.xlsm")
Case "VS02"
Set tracker = xl.Workbooks.Open("Z:\Operations\Projects\VS01\" & Year(Now()) & " VS02 WO Tracker.xlsm")
Case Else 'Program does not have a WO Tracker
xl.ScreenUpdating = True
Set xl = Nothing
Exit Sub
End Select
Set sn = tracker.Sheets("SN")
'Record NCR connection
connect(0) = [Work Order Number].Value
connect(1) = Title.Value
Set R = xl.Intersect(sn.Range("FirstCol"), sn.Range("NCRConnect"))
'Error 1004 thrown here:
Set C = R.End(xlToRight)
xl.Intersect(sn.Range("NCRConnect"), sn.Columns(C.Column + 1)) = xl.Transpose(connect)
End If
tracker.Save
tracker.Close
Set tracker = Nothing
Set sn = Nothing
xl.ScreenUpdating = True
Set xl = Nothing
End Sub
Кроме того, этот код работает очень медленно. Есть ли способ ускорить это?