Я пытаюсь добавить код заполнения цвета в частную подстанцию workheet_change, чтобы выделить ячейку, где значение даты было изменено. Этот макрос также обновил базу данных, на которую ссылается, после внесения каких-либо изменений в столбец даты (столбец 1 или A). Вот код:Определенная пользователем или объектная ошибка или цветовое заполнение
Private Sub Worksheet_Change(ByVal Target As Range)
If strChk = "Don't Change Yet" Then Exit Sub
Dim r As Integer, c As Integer
r = Target.Row
c = Target.Column
If openMode = True Then Exit Sub
If Trim(Cells(Target.Row, 1)) = "" Then Exit Sub
If r = 2 Then Exit Sub
If r = 3 Then Exit Sub
If Not c = 1 Then Exit Su
If Not IsNumeric(Cells(Target.Row, 2)) Then
MsgBox "no orca number"
Exit Sub
End If
If Not IsDate(Cells(Target.Row, 1)) Then
MsgBox "Target date is invalid! Weird, right?"
Exit Sub
End If
Dim strsqla As String
strsqla = "select target_date, orca, cow from orca " & _
"where orca_id = " & Cells(Target.Row, 2)
Dim adoSQLcon As ADODB.Connection
Set adoSQLcon = New ADODB.Connection
adoSQLcon.Open "Provider=SQLOLEDB;Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=ENV_AC_Nording_dw_DEV;Data Source=S0662K806"
Dim adoSQLRst As ADODB.Recordset
Set adoSQLRst = New ADODB.Recordset
adoSQLRst.Open strsqla, adoSQLcon, adOpenStatic, adLockOptimistic
If adoSQLRst.RecordCount > 0 Then
If IsDate(Target.Value) Then
adoSQLRst!target_date = Cells(Target.Row, 1).Value
MsgBox "Date Updated"
End If
If Not Cells(Target.Row, 4).Value = "" Then
adoSQLRst!ORCA = Cells(Target.Row, 4).Value
MsgBox "ORCA Description Updated"
End If
If Not Cells(Target.Row, 8).Value = "" Then
adoSQLRst!COW = Cells(Target.Row, 8).Value
MsgBox "CoW Devices Updated"
End If
adoSQLRst.Update
End If
adoSQLRst.Close
Set adoSQLRst = Nothing
adoSQLcon.Close
Set adoSQLcon = Nothing
Cells(Target.Row, 1).Interior.Color = RGB(255, 255, 0)
End Sub
Поэтому код я добавил это "Клетки (Target.Row, 1) .Interior.Color = RGB (255, 255, 0)". Поэтому я хочу выделить ячейку после изменения. Но это закончилось тем, что это ошибка времени выполнения «1004»: ошибка, определяемая приложением или объектная ошибка. Поэтому мне было интересно, сможет ли кто-нибудь помочь мне в этом. Потому что я пробовал все разные типы цветов, которые я могу найти на сайте, но все они породили эту ошибку. Большое спасибо за любую помощь.
Можете ли вы предоставить дополнительную информацию о контексте? (отметьте вопрос пожалуйста) – Blusky
Благодарим вас за ответ. Поэтому у меня есть таблица, в которой первый столбец является датой для разных задач. Теперь я хочу вручную изменить ячейку даты и хочу выделить измененный цвет ячейки желтым (RGB (255,255,0)). Кроме того, измененная дата будет обновлена обратно в базу данных, на которую ссылается. Но код, который я добавил, не работает, и он сгенерировал определенную приложением или объектную ошибку. – Richard
В контексте, я считаю, @Blusky означает, это макрос VBA в Excel? Включение этих тегов помогает привлечь нужных людей к вашему вопросу. – adamdc78