2014-08-28 19 views
0

我創建了一個宏工作簿供我的會計部門使用。宏工作簿包含可供不同用戶使用的多種不同用途的動態宏。爲了更進一步,我在宏工作簿中創建了一個前菜單,該菜單爲每個宏指定了一個命令按鈕,並在該宏的命令按鈕旁邊的單元中有一個描述。使用命令按鈕在任何所需的工作簿/電子表格上執行宏

我想讓用戶點擊他們想要的宏的命令按鈕,然後從不同的工作簿中選擇電子表格來執行宏。下面是一個示例宏。實質上,我試圖找出如何避免用戶必須使用Alt + F8來選擇並運行宏工作簿中的宏,方法是允許用戶選擇自己選擇的命令按鈕。

的步驟將是:

  1. 用戶將下載的報告或將有一個工作簿打開,他們想從一般的宏工作簿執行宏部門
  2. 用戶將打開保存在共享驅動器之一中的常規宏工作簿
  3. 用戶將點擊前面菜單上顯示的要執行的宏的命令按鈕。這將觸發宏執行,但直到用戶切換並選擇工作簿和電子表格以執行宏,纔會發生任何事情。
  4. 用戶選擇所需的工作簿和電子表格以確認將宏應用於宏,宏將執行

我停留在如何建立邏輯鏈接第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 

回答

1

你好是我在你們每個人得到了你的按鈕把這個代碼比切換出子例如我把你的fill_in子代碼在這個代碼只是改變它

Dim wb As Workbook 
Dim sheet As Worksheet 


Dim YesOrNoAnswerToMessageBox As String 
For Each wb In Application.Workbooks 
YesOrNoAnswerToMessageBox = MsgBox("Would you like to run the macro on " & wb.Name & "?", vbYesNo, "Where to run marco?") 
If YesOrNoAnswerToMessageBox = vbYes Then 
wb.Activate 
With wb 
For Each sheet In wb.Worksheets 
YesOrNoAnswerToMessageBox = MsgBox("Would you like to run the macro on worksheet " & sheet.Name & "?", vbYesNo, "Where to run marco?") 
If YesOrNoAnswerToMessageBox = vbYes Then 
sheet.Activate 

'Put sub name here 
fill_in 

End If 
Next sheet 
End With 
End If 
Next wb 
+0

所有你應該做的就是改變子名稱讓我知道這是否適用於你。 – Dmcovey1993 2014-08-28 01:42:37

+0

哈哈哈!這是驚人的工作。非常感謝你。我認爲它會落在這條線上,但我正在打一個心理障礙。非常感謝你。我認爲這會讓沒有大量宏觀曝光的每個人都更容易。它非常有意義。我測試了這一點,它完美的作品。 – fonzy16 2014-08-28 16:59:40

+0

嗯,我可以幫助我的空地 – Dmcovey1993 2014-08-28 20:42:47

相關問題