В настоящее время я редактирую макрос Excel, который может создавать штрих-коды.
Моя проблема: Код довольно тяжелый, и Excel набирает данные на каждом листе постоянно после ввода. Я пытался скопировать код на лист вместо модуля, но не мог понять, чтобы код работал только для определенного листа. Прикрепленный файл примера.
Решение: Ограничить код для конкретного листа, чтобы предотвратить постоянный расчет Excel
Вот фрагменты кода:
Dim IsMs As Boolean
Sub Init()
If VarType(Asc("A")) = 2 Then IsMs = True Else IsMs = False
End Sub
Public Function EncodeBarcode(ShIx As Integer, xAddr As String, _
code As String, pbctype%, Optional pgraficky%, _
Optional pparams%, Optional pzones%) As String
Dim s$, bctype%, graficky%, params%, zones%
Dim oo As Object
Call Init
If IsMissing(pzones) Then zones = 2 Else zones = pzones
If IsMissing(pparams) Then params = 0 Else params = pparams
If IsMissing(pgraficky) Then graficky = 1 Else graficky = pgraficky
If IsMissing(pbctype) Then bctype = 0 Else bctype = pbctype
Select Case bctype
Case 51 ' QRCode params: ECLevel 0=M 1=L 2=Q 3=H
s = "mode=" & Mid("MLQH", (params Mod 4) + 1, 1)
s = qr_gen(code, s)
End Select
If graficky <> 0 Then
If bctype >= 50 Then
If IsMs Then
Call bc_2Dms(s)
Else
Call bc_2D(ShIx, xAddr, s)
End If
Else
If IsMs Then
Else
End If
End If
EncodeBarcode = ""
Else
EncodeBarcode = s
End If
Exit Function
End Function
Function AscL(s As String) As Long
If IsMs Then AscL = AscW(s) Else AscL = Asc(s)
End Function