Als Skriptsprache, die in Microsoft Office-Produkten verwendet wird, ist VBA tatsächlich sehr leistungsfähig, da es viele der guten Traditionen von Visual Basic übernimmt. Wir können beispielsweise Klassen in VBA-Projekten wie der VB 6-Bibliothek oder dem ActiveX-Steuerelement einführen . Natürlich können die Komponenten oder Steuerelemente, die Sie in VB 6 verwenden, auch in VBA verwendet werden, wie beispielsweise die Datumseingabekomponente. VBA unterstützt ADO, was auch bedeutet, dass wir Datenbanken in VBA betreiben können, darunter SQL Server, Access usw. Aus diesem Grund können Sie versuchen, ein VBA-Programm in Excel zu schreiben, um Excel als Middleware für die Datensynchronisierung zu verwenden. Diese Middleware kann verwendet werden, um die Daten in der Anwendung und der Hintergrunddatenbank zu synchronisieren und darin etwas zu verarbeiten. Es ist machbar! Ich habe ein solches Beispiel in einem früheren Projekt durchgeführt und wir haben sogar Daten zwischen SQL Server und SharePoint List über Excel synchronisiert (ich werde dies in einigen folgenden Kapiteln vorstellen). ADO ist auch sehr leistungsfähig. Es wird häufig zum Verwalten von AD-Konten, zum stapelweisen Ändern von Konten in AD usw. verwendet. Sie können Notepad verwenden, um ein VBS-Skript unter Windows zu schreiben und es dann direkt zum Verwalten von AD auf Ihrem Server zu verwenden. Aus Sicherheitsgründen sind hierfür natürlich entsprechende Ausführungsberechtigungen erforderlich. Diese Aufgaben können auch über VBA erledigt werden, und Sie werden feststellen, dass dies manchmal sehr praktisch ist, z. B. das Ausleihen der vorhandenen Benutzeroberfläche von Excel, um Diagramme basierend auf den von Excel bereitgestellten Daten anzuzeigen Daten ändern; einfache Durchquerung und Organisation von Daten usw. Ich werde unten ein Beispiel geben. Fügen Sie einem neuen Blatt eine ActiveX-Schaltfläche hinzu und fügen Sie den folgenden Code hinzu. Private Sub CommandButton1_Click() On Error Resume Next Const ADS_SCOPE_SUBTREE = 2 Set objConnection = CreateObject (ADODB.Connection) Set objCommand = CreateObject(ADODB.Command) objConnection.Provider = ADsDSOObject objConnection.Open Active Directory Provider Set objCommand.ActiveConnection = objConnection objCommand.Properties(Page Size) = 1000 objCommand.Properties(Searchscope) = ADS_SCOPE_SUBTREE objCommand.CommandText = _ SELECT Name FROM 'LDAP://dc=XXX,dc=com' WHERE objectCategory='user' 'alle Benutzer aus dem suchen domn XXX Set objRecordSet = objCommand.Execute objRecordSet.MoveFirst Dim currCell As Range Set currCell = Range(A1) Do Until objRecordSet.EOF currCell.Value = objRecordSet.fields(Name).Value Set currCell = currCell.Offset(1, 0) objRecordSet.MoveNext Loop End Sub Im Code habe ich einen imaginären Domänennamen XXX verwendet. Leser können ihn zum Testen in einen echten Domänennamen ändern. Wir haben ADO verwendet, um eine Benutzerabfrage für die angegebene Domäne durchzuführen und die Namen aller Benutzer in der Domäne in der ersten Spalte der aktuellen Tabelle in Excel auszugeben. Unten sehen Sie einen Teil-Screenshot der Ausgabeergebnisse. Informationen zur Bedienung von AD über Skripte finden Sie in der offiziellen Dokumentation von Microsoft. Wenn die Berechtigungen zulässig sind, können Sie den obigen Code leicht ändern. Aufgrund der Netzwerkumgebung des Unternehmens ist dies nicht möglich Hier können Leser es bequem selbst ausprobieren, wenn sie die Voraussetzungen dafür haben.