VB/VBA怎么修改 Excel 单元格的数据类型?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB/VBA怎么修改 Excel 单元格的数据类型?相关的知识,希望对你有一定的参考价值。

Cells(1, 1) = "+8",结果加号就不见了,我想先把单元格(或者Range)改为文本数据类型,Excel 就不会删掉“+”了。

Cells(1, 1).NumberFormatLocal = "@"Cells(1, 1) = "+8",
另外,可以在不改变单元格数据类型的前提下,在+8前面加一个',excel就知道你要把单元格里数据当作文本显示了,具体方法:Cells(1, 1) = "'+8"
参考技术A Cells(1, 1) = "'+8"本回答被提问者采纳 参考技术B 调用工作表函数text

从 vba 中的单元格地址获取 excel 合并单元格的值

【中文标题】从 vba 中的单元格地址获取 excel 合并单元格的值【英文标题】:Get value of a merged cell of an excel from its cell address in vba 【发布时间】:2012-03-13 12:42:05 【问题描述】:

如何在 vba 中获取范围地址如“$B$4:$B$11”的 Excel 合并单元格的值

【问题讨论】:

Excel,我猜?值得作为标签添加... Range("B4:B11").Cells(1).Value ? 【参考方案1】:

即使真的不鼓励在 Excel 中使用合并单元格(例如,如果需要使用 Center Across Selection),“包含”该值的单元格仍是 左上角(在至少,这是一种表达方式。

因此,您可以通过多种方式获取B4:B11 范围内合并单元格的值:

Range("B4").Value Range("B4:B11").Cells(1).Value Range("B4:B11").Cells(1,1).Value

您还可以注意到,所有其他单元格都没有任何价值。调试时可以看到值为empty

另请注意,Range("B4:B11").Value 不起作用(如果您尝试 Debug.Print 它会引发执行错误号 13),因为它返回一个数组。

【讨论】:

当我不知道合并区域的边界时,我用Range("B6").MergeArea.Cells(1,1).Value得到值 不错的提示! 还有:Range("B4:B11").Item(1).Value,或者简单地说,Range("B4:B11")(1).Value【参考方案2】:

乔什·布朗(在评论中)给出了我认为最好的答案:

当我不知道合并区域的边界时,我用

获取值
Range("B6").MergeArea.Cells(1,1).Value

这在 VBA 中很有帮助,例如,当您循环浏览可能已合并未知范围单元格的文件时,您可以使用此方法更加通用。谢谢乔希!

【讨论】:

【参考方案3】:

这可以分两步完成:

名字合并单元格的范围;突出显示合并的单元格,然后转到功能区栏:Formulas Tab --> Define Name;

确保名称中没有空格。示例:defined_Name。转到您希望查看输出/结果的所需单元格。在该单元格中,输入:=defined_Name

按回车,因为您完成了。

【讨论】:

这与 VBA 无关。此外,使用 VBA,您可能不知道合并的单元格在哪里或它的边界是什么。

以上是关于VB/VBA怎么修改 Excel 单元格的数据类型?的主要内容,如果未能解决你的问题,请参考以下文章

vba编程 变量赋值单元格

vb中mid函数是如何使用的

Excel 如何在VBA中设定单元格的格式为文本

Excel中 如何局部修改单元格里的内容

Excel中怎样通过vba快速标注哪些单元格的数据发生变化?

用VBA条件锁定EXCEL单元格的问题,高手进!