我有一本工作簿,本质上是一个模板。模板需要保持完整,因此我尝试编写一个代码,每次打开工作簿时,它都会生成一个新的参考号并将该参考分配给特定字段。我有 vba 代码,它在打开工作簿 (AH5) 时生成参考号,然后合并 2 个单元格(AH4 和 AH5)以供我在 H4 中参考。
AH5 在 Excel 中的格式为“0000”,因为参考应该是从 1 开始的 4 位数字。但是,当与 AH4 合并时,我丢失了格式,因此我的结果是 LR-1 而不是 LR-0001。这是我当前的代码;
Private Sub Workbook_Open()
Range("AH5").Value = Range("AH5").Value + 1
Range("H4").Value = Range("AH4") & Range("AH5")
End Sub
如何保留 AH5 的格式,使 H4 中的结果看起来像 LR-0001
谢谢。
首先要做的事情:您应该指定工作表。
Range("AH5")
将指的是活动工作表。当代码在 Workbook-Open 事件中运行时,活动工作表始终是该工作簿的一张工作表,但这可能是该工作簿的任意工作表(上次存储发生时处于活动状态的工作表)。
即使您可能只有一张工作表:您也永远无法确定将来不会有另一张工作表。所以一定要写出合格的范围(注意点)
With ThisWorkbook.Sheets(1)
.Range("AH5").Value = .Range("AH5").Value + 1
End With
好吧,就是说:要获取单元格的formatted值,您可以使用属性
Text
:
.Range("H4").Value = .Range("AH4") & .Range("AH5").Text
但是,这有一个缺点:如果列太窄而无法显示文本,Excel 将显示类似
###
的内容,并且 Text
属性将返回这些 ###
而不是格式化的数字。
另一种方法是使用 VBA 使用
format
函数格式化数字:
.Range("H4").Value = .Range("AH4") & format(.Range("AH5"), "0000")