2016-01-22 46 views
0

道歉,如果這是在別的地方回答,但我已經搜索,找不到任何東西。宏記錄用戶已閱讀文件

我被要求創建一種跟蹤用戶閱讀我們的政策文件並記錄它的方式。我最初的想法是在政策文件底部有一個宏按鈕(單詞),用戶點擊該宏按鈕以確認他們已經閱讀。然後這將更新一個Excel電子表格,然後插入一個捕獲用戶名稱,文檔名稱和時間戳的新行。

然後團隊可以查看誰讀了什麼等,並刪除excel行一旦他們是最新的。 excel當然會被保存在一個靜態位置。

不幸的是,我的VB技能很小,所以我不知道從哪裏開始。這可以做到嗎?誰能幫忙?

回答

2

你可以試試下面

Sub save_tracking() 
Dim XLapp As Excel.Application 
Dim xlWB As Excel.Workbook 
Set XLapp = New Excel.Application 

'turn off extra bits 
Screen_ = XLapp.ScreenUpdating 
XLapp.ScreenUpdating = False 
Event_ = XLapp.EnableEvents 
XLapp.EnableEvents = False 
Alerts_ = XLapp.DisplayAlerts 
XLapp.DisplayAlerts = False 

'get username 
un = Environ("username") 

'open tracking workbook 
Set xlWB = XLapp.Workbooks.Open("C:\Test Tacking.xlsx", False, False) 

'save information 
With xlWB.Sheets(1) 
    If .Range("A2").Value = "" Then 
    'no values yet 
     .Range("A2").Value = un 
     .Range("B2").Value = XLapp.Name 
     .Range("C2").Value = Now() 
    ElseIf .Range("A3").Value = "" Then 
    '2nd 
     .Range("A3").Value = un 
     .Range("B3").Value = XLapp.Name 
     .Range("C3").Value = Now() 
    Else 
    '>2 values 
     .Range("A2").End(xlDown).Offset(1, 0).Value = un 
     .Range("B2").End(xlDown).Offset(1, 0).Value = XLapp.Name 
     .Range("C2").End(xlDown).Offset(1, 0).Value = Now() 
    End If 
End With 

'restore settings to previous 
XLapp.ScreenUpdating = Screen_ 
XLapp.EnableEvents = Event_ 
XLapp.DisplayAlerts = Alerts_ 

'save/close workbook 
xlWB.Close True 
XLapp.Quit 
Set XLapp = Nothing 


End Sub 

Function Environ(Expression) 
On Error GoTo Err_Environ 

    Environ = VBA.Environ(Expression) 

Exit_Environ: 
    Exit Function 

Err_Environ: 
    MsgBox Err.Number & " - " & Err.Description 
    Resume Exit_Environ 

End Function 

變化xlWB到您的跟蹤表存儲在文件名。在追蹤表A1/B1/C1中預留了一個標題,信息將存儲在第一張表中。

編輯:修改爲從其他辦公室程序運行。您需要對「Microsoft Excel 12.0 Object Library」的引用,版本可能不同,但應該沒問題。工具 - >參考。讓你參考

+0

感謝這一點,我認爲這是非常接近我後。我在Dim xlwb上看到'用戶定義類型未定義'錯誤,但是作爲Workbook行 - 任何想法會導致什麼? – monkeyb33f

+0

你在Excel中運行這個嗎?或另一個程序? – 99moorem

+0

從Word文檔裏面 – monkeyb33f