【问题标题】:Excel Auto FormattingExcel 自动格式化
【发布时间】:2021-05-16 11:04:13
【问题描述】:

我正在开发一个 VBA 模块。我正在将字典的内容粘贴到工作表中,并且某些值会自动格式化。

我查阅了很多关于如何防止 Excel 自动格式化数据的文章。

在粘贴之前,我尝试通过“格式化单元格”将单元格格式化为常规、文本和(尝试的)自定义格式(例如 #"A")。

另外,我也尝试在粘贴之前通过文本到列格式化单元格。我在这里尝试了 General 和 Text。

最后,我尝试使用Selection.NumberFormat = "General"Selection.NumberFormat = "Text" 以及Selection.TextToColumns Destination:=Range("B:B"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar _ :="=", FieldInfo:=Array(1, 2), TrailingMinusNumbers:=True

我什至尝试在自动格式化后进行查找和替换。例如,在粘贴和自动格式化之后,我会进行查找和替换以将“1:00:00 AM”更改为“1 Amps”,然后将“Amps”更改为“A”。这是为了看看我是否可以用我想要的替换选择中的部分字符串。那也没用。

受影响的值是安培额定值。例如,我正在执行查找和替换以将“1 Amp”更改为“1 A”。

无论我做什么,它都会将自动格式设置为“1:00:00 AM”这样的时间。

【问题讨论】:

  • 您是否尝试在填充单元格之前将单元格的数字格式设置为文本? vba 类似于Range("A1").NumberFormat = "@"
  • 成功了!谢谢@basodre!我对 VBA 不够精通,不知道修复它会那么容易。所以,我查了一下,“@”表示文本。为什么这行得通,我在格式化为文本方面尝试的所有其他方法都不起作用?另外,我假设这将采用我所有的字典键和项目,而不是应用任何自动格式化。对吗?
  • Text 只是将条目视为文本块,就像它本来的样子。当您选择不同的格式时,它仍然是一个数字,系统会尝试确定它应该是什么类型。
  • 这是有道理的,但你是说像 Text-to-Columns 这样的东西只会选择不同的格式,不会改变元数据或单元格的(后端)格式?因为我在使用 Text-to-Columns 以及 .NumberFormat 属性时选择了 Text。
  • @basodre 我无法将您的评论标记为答案。我想给你点赞,所以如果你能以一种我可以将其标记为答案的方式发布它,那就太好了!谢谢!

标签: excel vba autoformatting


【解决方案1】:

只需将单元格的数字格式设置为文本,即可解决您的问题。

您是否尝试在填充单元格之前将单元格的数字格式设置为文本? vba 类似于

Range("A1").NumberFormat = "@"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    相关资源
    最近更新 更多