VBA - ComboBox.value возвращает ноль при вызове в модулях - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь создать макрос Solidworks с помощью VBA.

Идея заключалась в том, чтобы импортировать файл DXF из определенной папки.

Первый этап: сканирование всех существующих файлов DXFfile методом Dir (выполнено)

Второй этап: добавить имя файла в комбинированный список с помощью .AddItem FileName (выполнено)

Третий этап: получить значение выбранного комбинированного списка из модуля (проблема)

ниже - это моеприблизительный код

'Within UserForm

Public folderpath, filepath, FileName as String
Public fullpath as String

Private Sub UserForm_Initialize()

folderpath = "insert path"
filepath = folderpath & "*.dxf"
FileName = Dir(filepath)

Do Until FileName = ""
   
    With ComboBox1
        .AddItem FileName
    End With
    
    FileName = Dir
Loop

'The FileName was added to ComboBox1 successfully

End Sub


Private Sub ComboBox1_Change()

fullpath = folderpath & ComboBox1.Value

'It returns the fullpath no problem
Debug.Print fullpath

End Sub

Здесь возникает проблема

'Import Module
Sub import()

Dim UserForm1 as New Form

'Here I tried to test if the fullpath is successfully called within the module, but it returns nothing
Debug.Print Form.fullpath

'Ignore the SW codes
Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("FRONT", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Dim myFeature As Object
Set myFeature = Part.FeatureManager.InsertDwgOrDxfFile(Form.fullpath)


End Sub

Я объявил, что для всего пути установлено значение Public, которое должно быть доступно для чтения всем модулям.Он отлично работает с TextBox, но не с ListBox или ComboBox.Есть идеи?

1 Ответ

0 голосов
/ 06 июня 2018

Я только что узнал, что вызов одной и той же пользовательской формы в двух разных модулях возвращает Null в более поздних модулях, я исправил это, и он успешно вызвал ComboBox.Value.

Извините за нежелательный пост.Наверное, я сам все понял.

...