添加文件版本Excel VBA

时间:2016-02-04 17:18:25

标签: excel excel-vba vba

每次文件发生变化时,我想在Cell P76中添加和更改文件版本。 我试过这个功能,但它显示的是Excel版本而且没有改变

Function ExcelVersion()
 ExcelVersion = Application.Version
 End Function

和单元格P76(Sheet2)

=ExcelVersion()

我希望它像VERSION 001一样展示,每次(sheet2)更新更新都会更改为下一个,例如VERSION 001到VERSION 002等等,以及单元格P77(Sheet2)日期和更新时间。

我也试着添加这个

 Private Sub submit_Click()     
 Dim i As Integer
 i = 1
 Cells(P76).value = "VERSION 00" & i + 1
 End Sub

但没有工作

2 个答案:

答案 0 :(得分:1)

将其放入“ThisWorkbook”中。它将添加没有“Version”字符串的版本号。我建议在相邻的单元格中添加“Version”以保持简单。

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    Sheets("Sheet2").Range("P76").Value = Sheets("Sheet2").Range("P76").Value + 1
    Sheets("Sheet2").Range("P77").Value = Now

End Sub

如果您需要“版本”与数字本身位于同一单元格中,请注释,我将编辑我的回复以反映该功能。

此外,这不会阻止用户编辑版本号,时间等,只是让您知道。

答案 1 :(得分:0)

我认为这就是您要寻找的。它放置在工作簿的BeforeSave事件中。在单元格P67中,您将带有单词“ Version:”,然后是版本号。版本号之前的此文本包含9个字符,包括空格。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim varVersion As Long
Sheets("Sheet2").Activate
varVersion = Right(Range("P67").Text, Len(Range("P67")) - 9)
Range("P67") = "Version: " & varVersion + 1
Range("P77").Value = Format(Now, "dd mmm yyyy")

End Sub