#if, # else, #end if ... что означают хэш-знаки в VBA?
Я пишу код, который будет проверять, доступен ли файл для извлечения из 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
Я понимаю, что делает код, но я просто не понимаю, что означает символ"#"?
другой пример его использования:
hdlFile = FreeFile
Open strPath For Binary As #hdlFile
strXl = Space(LOF(hdlFile))
Get 1, , strXl
Close #hdlFile
Я уверен, что есть действительно очевидный ответ на это, но это одна из вещей, которая является болью в заднице для google, потому что она настолько расплывчата. :(
много спасибо,
Splat
2 ответов
хэш-символы представляют собой команда препроцессора, которые являются командами, которые обрабатываются до компиляции, по существу создавая динамический / условный код. Эти типы команд часто используется в таких языках, как C/C++ для управления кросс-платформенного программирования. Общим использованием является проверка конкретной среды или платформы (т. е. VBA, Windows, MacOSX и т. д.), а затем реализовать платформу код.
хэш указывает, что это директива. Используется для включения или исключения кода из компиляции.
http://msdn.microsoft.com/en-us/library/7ah135z7.aspx
упс это для vb.net не так ли? Думаю, это та же концепция.