Vba 将数字另存为文本,如何将其自动化

Vba 将数字另存为文本,如何将其自动化,vba,excel,Vba,Excel,我有一个7702216772号在一个单元格内。如果我在第一个数字前放置一个,,然后单击输入Excel将数字转换为文本,并在单元格左上方放置一个绿色三角形: 我有许多行相似的数字,所有这些都需要转换成文本。但是,单击每个符号并在第一个符号前添加,,然后单击输入将花费大量时间。有没有什么方法可以通过编程来实现呢 我尝试使用公式:=“'”&H4但它没有达到预期效果-绿色三角形从未出现在结果单元格中 我还尝试将单元格格式设置为文本,但绿色三角形在这种情况下也不会出现。 我需要绿色三角形出现在左上角,就

我有一个
7702216772
号在一个单元格内。如果我在第一个数字前放置一个
,然后单击
输入
Excel
将数字转换为文本,并在单元格左上方放置一个绿色三角形:

我有许多行相似的数字,所有这些都需要转换成文本。但是,单击每个符号并在第一个符号前添加
,然后单击
输入
将花费大量时间。有没有什么方法可以通过编程来实现呢

我尝试使用公式:
=“'”&H4
但它没有达到预期效果-绿色三角形从未出现在结果单元格中

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


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

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

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”改为您使用的任何一列。

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

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”更改为您正在使用的任何列。

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

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

只需选择要处理并运行此短宏的单元格即可:

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

非VBA答案;我在这个答案中使用了G列,但这取决于你的数字在哪里。你得换个手机,但我想你不会介意的

  • 在空单元格中,输入公式:
    =“'”&G4
  • 使用填充手柄或
    Ctrl+D
    将其填充到G列值的长度
  • 选择整个G列的值并将其复制到剪贴板
  • 在G列中选择相同的范围,单击鼠标右键,选择“粘贴特殊”
,然后选择“值”

    非VBA答案;我在这个答案中使用了G列,但这取决于你的数字在哪里。你得换个手机,但我想你不会介意的

    • 在空单元格中,输入公式:
      =“'”&G4
    • 使用填充手柄或
      Ctrl+D
      将其填充到G列值的长度
    • 选择整个G列的值并将其复制到剪贴板
    • 在G列中选择相同的范围,单击鼠标右键,选择“粘贴特殊”,然后选择“值”

    我现在已经测试过好几次了,而且一直有效

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

    这同样适用于ActiveCell或任何您喜欢的产品。

    我现在已经测试了好几次,而且一直都有效

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

    同样适用于ActiveCell或任何您喜欢的手机号码。

    这是一个一开始就删除0的手机号码吗?因为如果是这样,只需在粘贴前将列更改为文本值即可。在单元格G4中放入公式
    =H4&“
    ,并根据需要向下复制<代码>复制>>粘贴特殊>>值应提供所需内容。@Kyoujin第一位数字不是零。我尝试将列更改为文本,但不起作用。虽然它说列的格式是文本,但粘贴的数字在左上角缺少绿色trianle。这是一个移动电话号码,在开始时删除了0吗?因为如果是这样,只需在粘贴前将列更改为文本值即可。在单元格G4中放入公式
    =H4&“
    ,并根据需要向下复制<代码>复制>>粘贴特殊>>值应提供所需内容。@Kyoujin第一位数字不是零。我尝试将列更改为文本,但不起作用。虽然它说列的格式是文本,但粘贴的数字在左上角缺少绿色三角形。