2015-10-14 2 views
0

Что я пытаюсь сделать здесь, это использовать мой объявленный «vSelection» в другом Sub, но он, похоже, не работает. Может, кто-нибудь может мне помочь?vba Excel с использованием объявленной переменной в другом разделе

Здесь я объявляю об этом.

Public Sub cmdBladeren_Click() 

Dim vSelection As Variant 
vSelection = Application.GetOpenFilename("Graphics files (*.gif), *.gif") 

If vSelection = False Then 
MsgBox "Selecteer een foto!" 
Exit Sub 
End If 

End Sub 

Здесь я хочу использовать его

Private Sub btnOK_Click() 

Dim rngRange As Range 
Dim rngProduct As Range 
Dim lTop As Long 
Dim lLeft As Long 
Dim oShape As Shape 

Set rngRange = Range("C2:O100") 

For intteller = 1 To 7000 

If rngRange.Cells(intteller).Interior.Color = RGB(146, 208, 80) Then 
    Set rngProduct = rngRange.Cells(intteller) 
    rngProduct.Interior.Color = RGB(193, 130, 67) 
    lTop = rngProduct.Top 
    lLeft = rngProduct.Left 

Set oShape = ActiveSheet.Shapes.AddPicture(vSelection, True, True, lLeft, lTop, 100, 192) 

rngProduct.Offset(1, 0).Value = Me.txtNaamProduct.Value 
Exit For 
Else 
End If 

Next 
Unload frmNieuwProduct 

End Sub 
+0

Вы должны объявить 'vSelection' * * перед ** первой процедурой, а не в ней. – Rory

+0

Это сделал трюк, ty: D – Iluvpresident

ответ

1

Вы должны понимать область переменного

Scope Как переменная объявлена ​​только

Процедуры - с помощью Dim или статического заявления в процедура, использующая переменную

Только модуль - по u петь Dim заявление до первой подпрограммы или функции оператора в модуле

Все процедуры во всех модулях - С помощью публичного заявления до первой подпрограммы или функции оператора в модуле