excel - 尝试将 Excel 列更改为文本
问题描述
我正在尝试使用 TEXT 函数格式化从“A3”开始的所有 Excel 单元格。我可以做一个单元格(参见示例 1),但我在尝试做整个列时遇到问题,我不断收到不匹配错误(参见示例 2)。
- 代码
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Dim lastRow As Integer
LastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
- 示例 1
ws.Range("H3") = Application.WorksheetFunction.Text(ws.Range("A3"), "00000.0000")
- 示例 2
ws.Range("H3:H" & LastRow) = Application.WorksheetFunction.Text(ws.Range("A3:A" & LastRow), "00000.0000")
错误:不匹配错误运行时错误13
解决方案
使用Application.Text
,它是后期绑定的版本,WorksheetFunction.Text
可以接受和返回一个数组。
还要更改Integer
为Long
以避免潜在的Overflow
错误。Excel 的行数超出了Integer
处理能力。
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
With ws.Range("H3:H" & lastRow)
.NumberFormat = "@"
.Value = Application.Text(ws.Range("A3:A" & lastRow), "00000.0000")
End With
推荐阅读
- ruby-on-rails - 带有文本和子元素的 Assert_select
- excel - 在 Excel 中使用 VBA 引用收件箱以外的 Outlook 邮箱
- regex - JMeter,正则表达式提取器
- python - Selenium 测试不能与任何元素交互
- node.js - 无论输入如何,节点 POST req 都返回相同的值
- amazon-web-services - 针对 HTTP 请求的 AWS Cognito UserPool 身份验证
- binary - 二进制表示 - C++ 中的转换
- r - 如何在R中使用转换变量对线性模型进行交叉验证
- android - 如何观察数据库的变化以更新 LiveData
- python - tkinter 程序使用 cx_Freeze 编译,但程序不会启动