2015-01-09 2 views
1

Ошибка в ошибке «неправильная внешняя процедура» со следующим кодом. Может кто-нибудь, пожалуйста, скажите мне, где я ошибаюсь.Неверная внешняя процедура при использовании Dim

Dim Asset As String, AssetURL As String 

Asset = Range("B1").Value 

If Asset = "1" Then 
    AssetURL = "X:\Docs\excel0001.xls" 
Elseif Asset = "2" Then 
    AssetURL = "X:\Docs\excel0002.xls" 
End If 

Range("C1").Value = AssetURL 
+4

ли блок кода с 'Sub' или' Function'? –

+1

Проблема не в этом коде. Пожалуйста, покажите код модуля WHOLE. –

+1

Я не хотел помещать его в Sub, поскольку я хочу использовать его для разных Subs, мне нужно будет поместить его в функцию? – Efe

ответ

5

Лучший способ убедиться, что вы можете запустить свой код в нескольких Subs, чтобы сделать ее Public Sub:

Public Sub qwerty() 
    Dim Asset As String, AssetURL As String 

    Asset = Range("B1").Value 

    If Asset = "1" Then 
     AssetURL = "X:\Docs\excel0001.xls" 
    ElseIf Asset = "2" Then 
     AssetURL = "X:\Docs\excel0002.xls" 
    End If 

    Range("C1").Value = AssetURL 
End Sub 

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

Sub OtherSub() 
    'OtherSub Code 
    Call qwerty() 'or just qwerty 
    'Rest of OtherSub Code 
End Sub 

Related question on using Call to utilize a Sub within another Sub

Смежные вопросы