Vba 防止excel更改单元格内容以获取文字值
我编写了一个模块脚本,该模块读取从SQL转储粘贴的数据,并将其转换为SQL的数据插入脚本。它工作得很好,唯一的问题是包含以下项的单元格: 11-20 它不是将我的值填充为“11-20”,而是将其转换为“11月20日” 我已经调整了从文本到值再到值2的单元格读取方式,文本最接近右边(其余的做一个数学计算,这会使我的整个工作表更加糟糕,即日期)。我也尝试过像Vba 防止excel更改单元格内容以获取文字值,vba,excel,formula,Vba,Excel,Formula,我编写了一个模块脚本,该模块读取从SQL转储粘贴的数据,并将其转换为SQL的数据插入脚本。它工作得很好,唯一的问题是包含以下项的单元格: 11-20 它不是将我的值填充为“11-20”,而是将其转换为“11月20日” 我已经调整了从文本到值再到值2的单元格读取方式,文本最接近右边(其余的做一个数学计算,这会使我的整个工作表更加糟糕,即日期)。我也尝试过像范围(“X:X”).clear和clearformat这样的东西。这也不起作用 如何强制此单元格的字符串读取为文本CSV内容,并忽略excel向
范围(“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 = "@"
这将把值格式化为
文本
,并防止在添加数据时将其解释为日期
。一旦Excel确定这是一个日期,就太晚了。我很确定,只需格式化单元格,右键单击要格式化为纯文本的单元格范围,单击“格式化单元格”,然后在“数字选项卡”下显示格式化类型的“类别”,例如:“常规、数字、货币等”,选择显示“文本”的位置然后单击“确定”,任何文本都将以与您编写文本相同的方式进行计算,因此,即使您编写“11-5-18”,它也将仅此而已,不会被视为日期或任何内容。如果您预先格式化他从中提取数据的源文件,它将起作用,否则Excel将按其希望的方式进行格式化…正确,但这不是问题。我会接受任何这样的工作,尽管我已经尝试过了。这将11-20转换为43424。很遗憾,文本格式不起作用。宾果!这就成功了!谢谢你的回复!在粘贴数据之前,我没有考虑调整格式。。。