仅 2 个单元格保留/添加格式

问题描述 投票:0回答:1

我有一本工作簿,本质上是一个模板。模板需要保持完整,因此我尝试编写一个代码,每次打开工作簿时,它都会生成一个新的参考号并将该参考分配给特定字段。我有 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

谢谢。

excel vba
1个回答
0
投票

首先要做的事情:您应该指定工作表。

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")
© www.soinside.com 2019 - 2024. All rights reserved.