vba - 防止 excel 更改单元格内容以获取文字值

标签 vba excel formula

我编写了一个模块,该模块从 SQL 转储中读取我粘贴的数据,并将其转换为 SQL 的数据插入脚本。它工作得很好,唯一的问题是包含以下项目的单元格:

11-20

而不是将我的值填充为“11-20”,而是将其转换为“20-Nov”。

我已经调整了我如何从文本读取单元格到 value2,Text 最接近右边(其余的数学计算会使我的整个工作表更糟,即日期)。我也尝试过 Range("X:X").clear 之类的东西和 clearformat也是。这也不起作用。

如何强制读取此单元格的字符串为文字 CSV 内容,并忽略 excel 向我抛出的公式/计算?

编辑:
感谢 BraX 的解决方案!

我无法通过在 Excel 中从一个选项卡复制到下一个选项卡来完成此操作,但我确实通过使用消息框暂停我的操作来使其工作,提示用户只需导航到 SQL 并将数据内容放入剪贴板。现在完美运行!

Cells.Select
Selection.NumberFormat = "@"

    MsgBox "Please navigate to SQL and copy your data to be insurted, including headers. When done click OK"
    Range("A1").Select
    ActiveSheet.Paste

最佳答案

之前 将数据添加到工作表中,设置 NumberFormat@对于受影响的列。

例子:

ActiveWorkBook.WorkSheets("Sheet1").Range("A:A").NumberFormat = "@"

这会将值格式化为 Text并防止它们被解释为 Date添加数据时。一旦 Excel 确定这是一个日期,就为时已晚。

关于vba - 防止 excel 更改单元格内容以获取文字值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48532354/

相关文章:

vba - 括号不被识别

vba - 为什么某些类型缺少 `Set` 是运行时错误而不是编译错误?

excel - 运行时错误 '1004' : Method 'Range' of object'_Global' failed

c# - 使用 OpenXML 创建合并单元格

excel - Sumifs 和标准 - 如何设置 "all"标准?

c# interop Excel - 禁用或删除自动分页符

algorithm - 带括号的公式解析器

crystal-reports - Crystal Reports 中的条件非重复计数

algorithm - 如何用数学方法表述这样的问题? (续行搜索)

excel - 使用基于instr的位置提取空格之间的字符串