Grundsätzlich, für jetzt unter Code sind in der Lage, meine Datenbank (SQL-Anweisung Update in Funktion GetUpdateTextSQL) aus Daten im Bereich A16 in Mein Arbeitsblatt und zu prüfen, bis immer Inhalt in Zellen ist, aber was ich tun will, ist nur Daten von Zellen zu aktualisieren, die nur ausgewählt werden, wenn Benutzer mit Excel (Alt + A + T) filtern und versteckte Zellen ignorieren.Excel VBA ignorieren versteckte Zeile und Massenaktualisierung von Zellen Bereich (Update nur für gefilterte Zelle in Excel)
Ich möchte das Programm nur die Zellen zu aktualisieren, die von Benutzern Auswahl herausgefiltert wurden und versteckte Zellen ignorieren
Private Sub CommandSave_Click()
If MsgBox("All records will be updated. Please make sure that all records all correct! " & _
"Continue Saving?", vbYesNo) = vbNo Then Exit Sub
If WorksheetFunction.CountA(Range("B16:K5000")) = 0 Then
MsgBox "No Records to be Saved"
Else
Dim cnt As New ADODB.Connection
Dim CmdForSave As New ADODB.Command
Dim r As Range
Dim ConnectionString As String
ConnectionString = "Provider=SQLNCLI11;Server=ID222222\SQLEXPRESS;Database=Demo;Trusted_Connection=yes;"
'Opens connection to the database
cnt.ConnectionTimeout = 30
cnt.Open ConnectionString
CmdForSave.ActiveConnection = cnt
For Each r In Range("A16", Range("A16").End(xlDown))
CmdForSave.CommandText = _
GetUpdateTextSQL(_
r.Offset(0, 1).value, r.Offset(0, 2).value, _
r.Offset(0, 3).value, _
r.Offset(0, 4).value, r.Offset(0, 5).value, _
r.Offset(0, 6).value, _
r.Offset(0, 0).value)
CmdForSave.Execute
Next r
MsgBox "Data Updated Successfully"
cnt.Close
Set cnt = Nothing
End If
End Sub
'If Not r.EntireRow Versteckte Then' ... führe das Update aus. –
wo genau sollte ich die Aussage setzen? Danke Tim! –
Nur in der 'For Each r'-Schleife –