2011-06-12 15 views
15

Sto scrivendo un codice che verificherà se un file è disponibile per il check out da SharePoint e, in caso contrario, avvisa l'utente e informa che il file è in uso da qualcun altro e che ha è in uso da.#if, #else, #end se ... cosa significano i segni di hash in VBA?

mi sono imbattuto in un pezzo di codice in questo sito: http://www.xcelfiles.com/IsFileOpen.html#anchor_37

Il codice stesso è piuttosto buona e sembra funzionare in scenari di test così ho intenzione di adattarlo per i miei scopi, ma sto avendo difficoltà a capire alcune delle sintassi utilizzate perché non ne ho mai viste prima.

#If Not VBA6 Then 

'// Xl97 

For i = j - 1 To 1 Step -1 

    If Mid(strXl, i, 1) = Chr(0) Then Exit For 

Next 

i = i + 1 

#Else 

'// Xl2000+ 

i = InStrRev(strXl, strFlag1, j) + Len(strFlag1) 

#End If 

Ho capito cosa fa il codice ma non capisco quale sia il significato del simbolo "#"?

Un altro esempio del suo uso è:

hdlFile = FreeFile 

Open strPath For Binary As #hdlFile 

strXl = Space(LOF(hdlFile)) 

Get 1, , strXl 

Close #hdlFile 

Sono sicuro che ci sia una risposta davvero evidente a questo, ma è una delle cose che è un dolore nel culo per google, perché è così vaga . :(

Molte grazie,

Splat

risposta

22

I simboli hash rappresentano inviato un comando di preprocessore , che sono comandi che vengono elaborati prima della compilazione, producendo essenzialmente codice dinamico/condizionale. Questi tipi di comandi sono spesso usati in linguaggi come C/C++ per gestire tecniche di programmazione multipiattaforma. Un uso comune è quello di verificare la presenza di un particolare ambiente o piattaforma (ad esempio VBA, Windows, MacOSX, ecc.) E quindi implementare il codice specifico della piattaforma.

http://en.wikipedia.org/wiki/Preprocessor

+2

Questi sono anche conosciuti come _directives_ e sono utilizzati per la compilazione condizionale. Sono chiamati comandi di preprocessore perché sono interpretati da un _programma_precedente prima di essere elaborati dal compilatore. –

+0

Brillante. Grazie mille per l'informazione. Questo rende il codice molto più comprensibile. – Splatgore