Suggerirei di separare il codice in base alla funzionalità e allo scopo specifico di ogni foglio o modulo. In questo modo, si inserisce il codice solo nell'interfaccia utente di un foglio all'interno del modulo del foglio e si inserisce solo il codice relativo ai moduli nei rispettivi moduli. Inoltre, utilizzare moduli separati per incapsulare il codice che è condiviso o riutilizzato tra più fogli diversi.
Ad esempio, supponiamo che più fogli siano responsabili della visualizzazione di dati da un database in un modo speciale. Che tipo di funzionalità abbiamo in questa situazione? Disponiamo di funzionalità correlate a ciascun foglio specifico, attività relative al recupero dei dati dal database e attività relative alla compilazione di un foglio con i dati. In questo caso, potrei iniziare con un modulo per l'accesso ai dati, un modulo per compilare un foglio con i dati e all'interno di ciascun foglio avrei il codice per accedere al codice in quei moduli.
Potrebbe essere disposto in questo modo.
Modulo: DataAccess:
Function GetData(strTableName As String, strCondition1 As String) As Recordset
'Code Related to getting data from the database'
End Function
Modulo: PopulateSheet:
Sub PopulateASheet(wsSheet As Worksheet, rs As Recordset)
'Code to populate a worksheet '
End Function
Scheda: Foglio1 Codice:
Sub GetDataAndPopulate()
'Sample Code'
Dim rs As New Recordset
Dim ws As Worksheet
Dim strParam As String
Set ws = ActiveSheet
strParam = ws.Range("A1").Value
Set rs = GetData("Orders",strParam)
PopulateASheet ws, rs
End Sub
Sub Button1_Click()
Call GetDataAndPopulate
End Sub
fonte
2010-07-15 12:45:21
notazione ungherese im implementato nella convenzione di denominazione Reddick è stato più o meno lo standard per la denominazione delle variabili per Visual Basic, Applications Edition e VB6. Mentre eviterei sicuramente il suo uso in .NET, dove gli strumenti sono molto potenti, non fa male usarlo in VBA, dove gli strumenti sono vecchi. –
@Ben - "Ungherese pazzo" è stato detto ironico :) Mentre l'ungherese aiuta con la mancanza della tipizzazione statica e gli strumenti attorno a "che cos'è di nuovo", penso che sia insufficiente quando si va di più verso gli oggetti- orientato VBA e inizia a creare i tuoi oggetti di dominio. La mia più grande lamentela, tuttavia, è che ungherese è davvero in disaccordo con il flusso del codice in realtà * reading *. Ognuno al loro, però, non un punto di vista religioso per me. Ma se qualcuno chiede, non lo consiglierò. – jevakallio
Buon punto. Sono d'accordo che quando si costruiscono classi in VBA, l'ungherese può rendere brutti i tuoi oggetti. Forse lo uso ancora in VB6 per ricordare a me stesso che sto lavorando in VB6 :-). –