将数字保存为文本,如何自动化

时间:2018-01-18 12:33:42

标签: excel vba excel-vba

我在单元格中有一个7702216772个数字。如果我在第一个数字前加'并点击Enter Excel将数字转换为文本,并在单元格的左上角放置一个绿色三角形:

enter image description here

我有许多相似数字的行,所有这些都需要转换成文本。但是,点击每个并在第一个符号前添加'并点击Enter会花费很多时间。有没有办法以编程方式进行呢?

我尝试使用公式:="'"&H4但它没有达到预期效果 - 绿色三角形永远不会出现在结果单元格中。

我也尝试将单元格格式设置为Text,但在这种情况下也不会出现绿色三角形。

我需要绿色三角形出现在左上角,就像图片一样!

4 个答案:

答案 0 :(得分:2)

如果您的所有号码都在一列中,则以下代码将执行此操作:

Sub foo()
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
'declare and set your worksheet, amend as required
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
'get the last row with data on Column A

For i = 1 To LastRow 'loop from row 1 to last
    ws.Cells(i, "A").Value = "'" & ws.Cells(i, "A").Value 'add the ' before the number
Next i
End Sub

更改" A"到你正在使用的任何一列。

答案 1 :(得分:1)

只需Select您要处理的单元格并运行此短宏:

Sub Textify()
    Dim rng As Range, r As Range
    Set rng = Selection.Cells.SpecialCells(2, 1)
    For Each r In rng
        r.Value = "'" & r.Value
    Next r
End Sub

答案 2 :(得分:1)

非VBA答案;我在这个答案中使用了G列,但这取决于你的数字在哪里。你必须改变单元格,但我认为你会对此有所了解。

  • 在空单元格中,输入公式:="'"&G4
  • 使用填充手柄或Ctrl+D将其填充到G列值的长度。
  • 选择整个列G的值并将其复制到剪贴板
  • 在G列中选择相同的范围,右键单击,选择Paste Special并选择Values

答案 3 :(得分:0)

我已经多次测试了它并且它始终有效

Cells(xx, xx).FormulaR1C1 = "'" & Cells(xx, xx).Value

同样适用于ActiveCell或您喜欢的任何内容。