Если ячейка содержит какой-либо текстовый вызов, макрос вызовите macro2 - PullRequest
0 голосов
/ 01 февраля 2019

Я делаю систему «Счета на месте» с использованием Excel, которую я почти полностью выполнил, просто делаю некоторые последние штрихи.

У меня есть макрос для экспорта листов в PDF в зависимости от того, что было сделано.Но я застрял.У меня есть два листа "БИЛЕТ" и "БИЛЕТ2".Что мне нужно сделать, это использовать VBA, чтобы определить, используется ли «TICKET2», затем он экспортирует «TICKET» и «TICKET2» (вместе с некоторыми другими листами) в PDF.Если «TICKET2» не используется, то он экспортирует только «TICKET» (вместе с другими листами).

В настоящее время, если в TICKET2 есть запись, ячейка на TICKET (S49) возвращает «Перейти к странице 2»:

=IF(TICKET2!C11>0,"Continue to Page 2","")

Затем я пытаюсь использовать эту ячейку для вызова одного из 2 макросов через IF / THEN

Sub Export()
Dim page2 As String
page2 = Worksheets("TICKET").Range("S49")
If page2 = "Continue to Page 2" Then Call Save2page Else
    Call Save1page
End If
End Sub

Так вот, где я застрял.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

То, что я всегда говорю, - это упростить что-то вроде

=IF(TICKET2!C11>0,1,0)

. Если вы сделаете это, вам будет проще избежать ошибок, таких как регистр или двойной пробел.

Но после этогоотдых довольно прямой.

Sub Export()
 Dim page2 As Integer
 page2 = Sheets("TICKET").Range("S49").Value
 If page2 = 1 Then 
    Call Save2page 
    Else
    Call Save1page
 End If
End Sub
0 голосов
/ 01 февраля 2019

Эта строка является проблемой

page2 = Worksheets("TICKET").Range("S49")

Возвращает Range, который не является строкой.

Вам необходимо получить доступ к значению ячейки вместо

page2 = Worksheets("TICKET").Range("S49").Value
...