#if,#else,#end if ...哈希标志在VBA中意味着什么?

Spl*_*ore 23 variables excel vba conditional-statements

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

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

代码本身非常好,似乎在测试场景中工作,所以我打算根据我的目的调整它,但我无法理解正在使用的一些语法,因为我以前从未见过它.

#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
Run Code Online (Sandbox Code Playgroud)

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

它的另一个例子是:

hdlFile = FreeFile

Open strPath For Binary As #hdlFile

strXl = Space(LOF(hdlFile))

Get 1, , strXl

Close #hdlFile
Run Code Online (Sandbox Code Playgroud)

我确信这有一个非常明显的答案,但这是一个令人痛苦的谷歌,因为它是如此模糊.:(

非常感谢,

Chr*_*son 29

散列符号表示预处理器命令,它们是在编译之前处理的命令,主要产生动态/条件代码.这些类型的命令通常用于诸如C/C++之类的语言中,以管理跨平台编程技术.常见的用法是检查特定环境或平台(即VBA,Windows,MacOSX等),然后实现特定于平台的代码.

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

  • 这些也称为_directives_,用于条件编译.它们被称为预处理程序命令,因为它们在由编译器处理之前由_preprocessor_解释. (2认同)