Я создал книгу макросов, которая будет использоваться моим бухгалтерией. Книга макросов содержит динамические макросы, которые могут использоваться по разным причинам разными пользователями. Чтобы сделать еще один шаг вперед, я создал переднюю панель в книге макросов, которая имеет командную кнопку, назначенную для каждого макроса, и описание в ячейке рядом с командной кнопкой этого макроса.Выполнить макрос любой рабочей книги/таблицы с помощью командной кнопки
Я хотел бы, чтобы пользователь нажал кнопку командной строки макроса, который они желают, а затем выберите таблицу из другой книги для макроса, который будет выполнен. Ниже приведен пример макроса образца. В сущности, я пытаюсь выяснить, как я могу избежать использования пользователем Alt + F8 для выбора и запуска макроса, размещенного в книге макросов, позволяя пользователю выбирать командную кнопку по своему выбору.
Шаги будут:
- Пользователь будет загрузить отчет или будет иметь книгу открытой, что они хотели бы, чтобы выполнить макрос из общих макросов книги для отдела
- Пользователь будет открывать общая макроэкономическая книга, сохраненная в одном из разделяемых дисков
- Пользователь нажимает на командную кнопку макроса, который они хотели бы выполнить, показанный в главном меню. Это приведет к запуску макроса, но ничего не произойдет, пока пользователь не переключится и не отобразит книгу и электронную таблицу для выполнения макроса.
- Пользователь выбирает нужную книгу и таблицу для подтверждения применения макроса к макросу и выполняет макрос
я застрял на том, как построить логику, чтобы связать шаг 3 к шагу 4.
Sub fill_in()
'Fills in blank cells with populated cells above
'could help with filling in GL's for a set number of rows below
'could help with filling in Property IDs or Resident IDs, etc.
Dim col As String
col = InputBox("Enter Column Letter to find Last Row")
Dim lrow As Long
lrow = Cells(Rows.Count, col).End(xlUp).Row
Dim StartRow As Long
Dim StartCol As String
Dim EndCol As String
StartRow = InputBox("Enter Beginning Row # for Range")
StartCol = InputBox("Enter Beginning Column Letter for Range")
EndCol = InputBox("Enter Last Column Letter for Range")
Dim Rg As Range
Set Rg = Range(Cells(StartRow, StartCol), Cells(lrow, EndCol))
'Fill data for each cell below
Dim MyCounter As Long
MyCounter = 0
For Each r In Rg
On Error Resume Next
If r.Value = "" Then
r.Value = r.Offset(-1, 0).Value
End If
Next
End Sub
Все, что вам нужно сделать, это изменить подзаголовки. Позвольте мне знать, если это сработает для вас. – Dmcovey1993
Хахаха! Это потрясающая работа. Большое спасибо. Я подумал, что это пойдет по строкам, но я ударил по ментальной дорожке. Большое спасибо. Я думаю, что это облегчит для всех, у кого не было много макроэкспозиции. Это имеет смысл. Я проверил это, и он отлично работает. – fonzy16
Ну, я поляна, я мог бы помочь – Dmcovey1993