将动态范围的数据格式化为文本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将动态范围的数据格式化为文本相关的知识,希望对你有一定的参考价值。
我正在尝试将数字字符串转换为9位数字的文本。每次运行时,该列的长度都会有所不同。
尝试使用类似的方法来查找LastRow。
Sub Macro3()
'
Dim LastRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Data Validation")
Sheets("Data Validation").Select
Cells.Replace What:="-", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
LastRow = ws.Cells.find(What:="*", After:=ws.Cells(1, 1),
LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious,
MatchCase:=False).Row
Set rng = Cells(LastRow, 15)
Range("O2").Select
ActiveCell.FormulaR1C1 = "=TEXT(RC[-4],""000000000"")"
Range("O2").Select
Selection.AutoFill Destination:=Range("O2:rng")
End Sub
我希望我的文本格式可以扩展到现有数字的整列。当前,我正在获取对象_Global的方法范围失败错误消息。
答案
不需要Select
或AutoFill
。
更改以下内容:
Set rng = Cells(LastRow, 15)
Range("O2").Select
ActiveCell.FormulaR1C1 = "=TEXT(RC[-4],""000000000"")"
Range("O2").Select
Selection.AutoFill Destination:=Range("O2:rng")
到
ws.Range("O2:O" & LastRow).FormulaR1C1 = "=TEXT(RC[-4],""000000000"")"
我个人倾向于避免FormulaR1C1
:
ws.Range("O2:O" & LastRow).Formula = "=TEXT(K2,""000000000"")"
以上是关于将动态范围的数据格式化为文本的主要内容,如果未能解决你的问题,请参考以下文章