Хотели бы получить помощь и совет по работе с кодами и кнопками на MS-Excel - PullRequest
0 голосов
/ 09 ноября 2018

В настоящее время я работаю над документом Excel, в котором я хотел бы щелкнуть ячейку и открыть всплывающее окно с вариантами дополнительных командных кнопок на выбор. Когда пользователь нажимает на одну из кнопок внутри пользовательской формы, кнопка затем перемещает выделение этой строки A: G на другой лист. У меня будет несколько строк, и я хотел бы написать код, чтобы настроить его в поле, откуда была начата первоначальная команда. У меня есть первая кнопка и пользовательская форма заполнена, и она работает хорошо. Проблема заключается в следующем наборе кнопок для копирования, вставки и удаления строки. Вот что у меня так далеко. Любая помощь будет оценена.

Private Sub FireChief_Click()
Dim i As Long: i = 1
Dim n As Long
Dim nLastRow As Long
Dim lastRow As Integer
With ActiveSheet
    For n = nReference To nLastRow Step 1

ActiveSheet.UsedRange

Set r = ActiveSheet.UsedRange
nLastRow = r.Rows.Count + r.Row + 1
Set Reference = Selection
Next Copy_to_Range()
ActiveWorksheets.Range("Reference").Copy
   Destination = Worksheets("Fire Chief").Range("nLastRow")
Worksheets("Fire Chief").Columns("A:G").AutoFit

End Sub 

Таким образом, вместо кода, перечисленного выше, я попытался переработать его с некоторыми предоставленными данными. По сути, это в некотором роде будет работать как документ Access, а когда кнопка нажата, она сделает всю работу для конечного пользователя. Я работаю в пожарном отделении и хотел бы облегчить это тем, кто должен им пользоваться. Есть 10 листов, с которыми мне нужно работать, и как только я найду один, я перепишу, чтобы соответствовать другому. Новый код ниже

Option Explicit
Sub BaseFireMarshal_Click()

End Sub

Sub FireChief_Click()
Dim i As Long: i = 1
Dim n As Long
Dim nLastRow As Long
Dim lastRow As Integer
Dim B As Integer
Dim R As Range
    Set R = Sheet5.Range("A2:G999")
    If Worksheets("ActiveSheet").Range("A:XFD").Copy_ = True Then
    Dim continue As Boolean
        continue = True
        If continue = True Then

            Worksheets("Sheet5").Activate
            B = Worksheets("Sheet5").Cells(Rows.Count, 1).End(xlUp).Row
            Worksheets("Sheet5").Cells(B + 1, 1).Select
            ActiveSheet.Paste
            Worksheets("Fire Chief").Columns("A:G").AutoFit
            Worksheets("Sheet5").Deactivate
        End If

        If Application.CutCopyMode = False Then 
ThisWorkbook.Worksheets("ActiveSheet").Cells(1, 1).Select
        End If

End Sub



Private Sub cmdClose_Click()
Unload Me
End Sub

1 Ответ

0 голосов
/ 09 ноября 2018

Я хотел бы щелкнуть по ячейке и открыть всплывающее окно с вариантами дополнительных командных кнопок.

это можно сделать с помощью группировки столбцов на вкладке «данные». по существу, он сворачивается / расширяет часть листа.

кнопка, которая затем переместит выделение этой строки A: G на другой лист

вырезать и вставлять

хотел бы, чтобы код настраивался в поле, в котором исходная команда была инициирована с

хочу использовать для этого "selection.column" или "selection.row" в вашем коде VBA.

Вот что у меня есть.

Что касается вашего кода, я никогда не использую именованные диапазоны. Я всегда использую диапазон (ячейки (строка, столбец), ячейки (строка, столбец)), потому что тогда его динамика.

Попробуйте сделать это и вернитесь к нам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...