使用 VBA 以通用格式复制数字时删除前导撇号

Remove leading apostrophes when copying numbers in General format with VBA

我正在调整一个简单的宏来复制格式为常规的 EDD 文件中包含的数字列表;我需要转置它们并只粘贴值。粘贴后,我需要通过选择它们并执行第二个宏来将自定义格式应用于特定格式。问题是所有数字都以撇号开头,自定义格式对它们不起作用。 (它适用于我手动输入的 sheet 上的所有其他数字,并且在我手动输入并删除撇号时起作用。)

我无法将每个来源选择的 'general' 格式更改为 'number'(我将使用过滤器多次获取这样的列表,所以我可以,但要点VBA 就是不要那样做!)

Sub Transpose_Values()
'
' Transpose_Values Macro
'
' Keyboard Shortcut: Ctrl+Shift+V
'
    Selection.PasteSpecial Paste:=xlPasteValues, Transpose:=True
    Selection.NumberFormat = 0#
    
End Sub

我尝试了多种 NumberFormat 变体,但没有任何效果。撇号保留。我该如何解决这个问题?我正在将“结果”翻转到这个 table 中,并且需要将具有自定义格式的任何 'Flags' 应用于数字,如下所示:

(请注意突出显示的“9.5”有一个撇号(来自转置宏)并且不会接受添加 'J flag' 的键盘命令,就像我输入的右上角的单元格一样手动作为数字,键盘命令适用于)

更新:我尝试在选择的源数据中将格式更改为 'Number' 以查看是否有效,并且它仍然将所有单元格粘贴到撇号中。有趣的是,除了第一个值。无论是否有“<”,它都会正常粘贴,其他的都有撇号,即使源数据已经设置为 'Number'.

在您要粘贴值的范围内使用 Replace() 来查找和替换撇号。你也可以做同样的事情来删除“<”。

For Each cell In Range("YourRange")
    cell.Value = Replace(cell.Value, "'", "")
Next cell