#if,#else,#end如果… VBA中的散列符号是什么意思?

我正在编写一些代码,用于检查是否可以从SharePoint检出文件,如果不是,请提醒用户并告诉他们文件正在被其他人使用,在使用中。

我在这个网站上遇到了一段代码: http : //www.xcelfiles.com/IsFileOpen.html#anchor_37

代码本身非常好,似乎在testing场景中工作,所以我打算适应它的目的,但我无法理解一些正在使用的语法,因为我从来没有见过它的喜欢。

#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 

我明白代码的作用,但我不明白'#'符号的意义是什么?

其使用的另一个例子是:

 hdlFile = FreeFile Open strPath For Binary As #hdlFile strXl = Space(LOF(hdlFile)) Get 1, , strXl Close #hdlFile 

我确信这个问题有一个非常明显的答案,但这是谷歌的一个痛苦之处,因为它太模糊了。 🙁

非常感谢,

散列符号表示预处理器命令 ,它们是在编译之前处理的命令,本质上产生dynamic/条件代码。 这些types的命令通常用于诸如C / C ++之类的语言来pipe理跨平台编程技术。 一个常见的用法是检查特定的环境或平台(即VBA,Windows,MacOSX等),然后实现特定于平台的代码。

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

散列表示它是一个指令。 用于从编译中直接包含或排除代码。

http://msdn.microsoft.com/en-us/library/7ah135z7.aspx

哎呀,这是为vb.net是不是。 我认为同样的概念。