#vba #ms-word
#vba #ms-word
Вопрос:
Когда я нажимаю на CommandButton, который запускает код, он удаляется. Но я хочу использовать его снова. Все эти операторы IF относятся к кнопкам переключения. Если они нажаты, командная кнопка с именем CREATE вставляет соответствующие файлы.
Public Sub CREATE_CLICK() `this is the command button`
If MAV.Value = True Then
Selection.InsertBreak
Selection.InsertFile FileName:="C:UsersAZIDocumentsSchnellbaustein MAV Fertig.docx"
End If
If MCS.Value = True Then
Selection.InsertBreak
Selection.InsertFile FileName:="C:UsersAZIDocumentsSchnellbaustein MCS Fertig.docx"
End If
If MDC.Value = True Then
Selection.InsertBreak
Selection.InsertFile FileName:="C:UsersAZIDocumentsSchnellbaustein MDC Fertig.docx"
End If
If MGB.Value = True Then
Selection.InsertBreak
Selection.InsertFile FileName:="C:UsersAZIDocumentsSchnellbaustein MGB.docx"
End If
If MUP.Value = True Then
Selection.InsertBreak
Selection.InsertFile FileName:="C:UsersAZIDocumentsSchnellbaustein MUP Fertig.docx"
End If
If MVT.Value = True Then
Selection.InsertBreak
Selection.InsertFile FileName:="C:UsersAZIDocumentsSchnellbaustein MVT.docx"
End If
If MVK.Value = True Then
Selection.InsertBreak
Selection.InsertFile FileName:="C:UsersAZIDocumentsSchnellbaustein MVK.docx"
End If
End Sub
Комментарии:
1. В обычном мире такого не может произойти. Если вы не покажете свой код, никто не сможет вам помочь. Возможно, ваша кнопка создается «на лету» (в форме). О каком типе кнопки вы говорите?
2. я добавил код
3. В вашем коде нет строки, которая удаляет commandbutton . Это полный код?
Ответ №1:
После использования записи макросов ваш код специфичен для объекта выбора, что приводит к неожиданным результатам, когда вы пытаетесь сделать макрос более обобщенным. Поскольку ваша кнопка находится на странице, когда вы нажимаете на нее, она становится выделенной, и ваш код заменяет ее.
Вместо этого используйте диапазоны для определения места, куда должен быть вставлен документ. Удобный метод — использовать закладку в предпочтительном месте. В этом коде предполагается, что в документ под кнопкой ActiveX добавлена закладка с именем InsertPoint .
Private Sub CREATE_Click()
Dim oRange As Range
If MAV.Value = True Then
With ActiveDocument.Bookmarks("InsertPoint").Range
.InsertBreak
.InsertFile FileName:="C:UsersAZIDocumentsSchnellbaustein MAV Fertig.docx"
End With
End If
If MCS.Value = True Then
With ActiveDocument.Bookmarks("InsertPoint").Range
.InsertBreak
.InsertFile FileName:="C:UsersAZIDocumentsSchnellbaustein MCS Fertig.docx"
End With
End If
If MDC.Value = True Then
With ActiveDocument.Bookmarks("InsertPoint").Range
.InsertBreak
.InsertFile FileName:="C:UsersAZIDocumentsSchnellbaustein MDC Fertig.docx"
End With
End If
If MGB.Value = True Then
With ActiveDocument.Bookmarks("InsertPoint").Range
.InsertBreak
.InsertFile FileName:="C:UsersAZIDocumentsSchnellbaustein MGB Fertig.docx"
End With
End If
If MUP.Value = True Then
With ActiveDocument.Bookmarks("InsertPoint").Range
.InsertBreak
.InsertFile FileName:="C:UsersAZIDocumentsSchnellbaustein MUP Fertig.docx"
End With
End If
If MVT.Value = True Then
With ActiveDocument.Bookmarks("InsertPoint").Range
.InsertBreak
.InsertFile FileName:="C:UsersAZIDocumentsSchnellbaustein MVT Fertig.docx"
End With
End If
If MVK.Value = True Then
With ActiveDocument.Bookmarks("InsertPoint").Range
.InsertBreak
.InsertFile FileName:="C:UsersAZIDocumentsSchnellbaustein MVK Fertig.docx"
End With
End If
End Sub