Excel VBA - запуск макросов Excel на конкретном листе - PullRequest
0 голосов
/ 07 мая 2018

В настоящее время я редактирую макрос 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...