我编写了一个模块,该模块从 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/