Board logo

标题: [文件操作] 【已解决】批处理或VBS发送组合键到xls文件? [打印本页]

作者: batman    时间: 2009-3-21 14:44     标题: 【已解决】批处理或VBS发送组合键到xls文件?

&&本人最近一直在研究用批处理和excel函数相结合来处理数据,在实际应用中也取得了一
定的成功,过阵子将会把研究和实际应用中获得的经验和心得整理出来共享给大家。但在这
其中有一个一直都没能突破的技术瓶颈,因本人能力有限,只好向大家求助了。

   在excel函数中有一类函数称为数组函数,这类数组函数都是需要用ctrl+shift+enter组合键
在公式的最外部生成一对{}号,请注意直接输入{}是不行的。而批处理向xls文件进行输入操作
时是无法生成这对{}号的,于是本人又想通过vbs的sendkey来实现这一操作,但一样是不能
解决这一问题,如下面的这句命令(注意{}是组合键):

   echo {=SUM(($B$1B$1000="株洲县")*1)}>a.xls

      怎么将组合键和要输入的公式一起输入到a.xls?这就是我要解决的问题,还请大家予以指
教,在此先表示万分感谢!

[ 本帖最后由 batman 于 2009-3-21 20:25 编辑 ]
作者: Batcher    时间: 2009-3-21 18:03

据我所知,数组函数是需要ctrl+shift+enter组合键,而不是ctrl+alt+enter,你是不是记错了?
作者: batman    时间: 2009-3-21 18:20

汗!是的,的确是我记错了,已修改。。。
作者: defanive    时间: 2009-3-21 19:05

能否直接或间接获得符号的ASCII码,然后通过VBS转换后再输出?或者在edit中用Ctrl+P打出来?就像当时对付退格符一样
作者: Batcher    时间: 2009-3-21 19:41

献丑了
  1. '数组函数
  2. Set objExcel = Nothing
  3. Set objExcel = CreateObject("Excel.Application")
  4. Set objWorkbook = objExcel.Workbooks.Open("C:\test\a.xls")
  5. Set WshShell = WScript.CreateObject("WScript.Shell")
  6. objExcel.Visible = True
  7. objExcel.WorkSheets(1).Activate
  8. objExcel.Cells(1, 1).Value = "=SUM(($B$1:$B$1000=""株洲县"")*1)"
  9. objExcel.Cells(1, 1).Activate
  10. WshShell.SendKeys "{F2}"
  11. WshShell.SendKeys "^+~"
  12. objExcel.ActiveWorkbook.Save
  13. objWorkbook.Close
  14. objExcel.Quit
  15. Set objWorkbook = Nothing
  16. Set objExcel = Nothing
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2