标题: [问题求助] 短短几行VBS代码为何总是提示无效字符 [打印本页]
作者: 普大喜奔 时间: 2014-9-20 14:33 标题: 短短几行VBS代码为何总是提示无效字符
- set oExcel=CreateObject("Excel.Application")
- oExcel.Visible=True
- set xlsfile=oExcel.Workbooks.Open FileName:="d:\data.txt",ReadOnly:=True,Format:=6,Delimiter=:"|"
复制代码
总共3行的脚本 提示第1行错误:无效字符
到底哪里出问题了呢 别的脚本类似代码运行的好好的啊 会不会是open方法的参数写法不对 可是也不应该提示是第1行的问题啊???
作者: 普大喜奔 时间: 2014-9-20 15:07
重新写了一遍代码 这次是第3行出错:缺少语句,改成- set oexcel=createobject("excel.application")
- oexcel.visible=true
- oexcel.workbooks.open Filename:="d:\data.txt"
复制代码
依然出错,再改- set oexcel=createobject("excel.application")
- oexcel.visible=true
- oexcel.workbooks.open("d:\data.txt")
复制代码
正常运行。我晕死了 这两种写法不是都有效的吗 还请高手来解惑
作者: CrLf 时间: 2014-9-20 15:09
本帖最后由 CrLf 于 2014-9-20 15:57 编辑
FileName:="d:\data.txt",ReadOnly:=True,Format:=6,Delimiter=:"|"
这是 vba 的参数赋值方法,不适用于 vbs
vbs 不能跳着赋值,只能挨个填坑:- set xlsfile=oExcel.Workbooks.Open( "d:\data.txt",,True,6,,,,,"|")
复制代码
作者: 普大喜奔 时间: 2014-9-20 15:11
回复 3# CrLf
真是帮了我大忙了!!这个论坛太棒了 高手如云 菜鸟的福音 哈哈
作者: 普大喜奔 时间: 2014-9-20 15:12
回复 3# CrLf
今天分用完了 绝对+1
作者: 普大喜奔 时间: 2014-9-20 15:22
回复 3# CrLf
word的document.open参数可以跳着写啊,比如
set docfile=objWord.Documents.Open FileName:=arg,ReadOnly:=True,ConfirmConversions:=false,NoEncodingDialog:=true
在另一个脚本里可以正常运行
excel的确是你说的 没法这么搞
作者: CrLf 时间: 2014-9-20 15:31
回复 6# 普大喜奔
vbs 没有 FileName:=arg 这种用法
作者: 普大喜奔 时间: 2014-9-20 15:33
回复 7# CrLf
呵呵 我没全贴出来 arg是个字符串变量 在前面定义了
作者: CrLf 时间: 2014-9-20 15:54
回复 8# 普大喜奔
我的意思是 vbs 没有 := 运算符
作者: 普大喜奔 时间: 2014-9-20 15:55
回复 7# CrLf
小弟又有新问题求教,还是刚才的代码,运行正常了但没有效果,比如data.txt的内容是这样
我用excel手动打开并设置分隔符为"|"的效果是这样
但代码运行的效果是这样
全部的内容都挤在第一列了 open参数好像没有起作用哇
作者: CrLf 时间: 2014-9-20 15:58
回复 10# 普大喜奔
没注意前面有个 set,已修改,但运行到那里应该会报错退出才是,你是怎么打开的...
作者: 普大喜奔 时间: 2014-9-20 16:04
回复 11# CrLf
代码是这样- set oexcel=createobject("excel.application")
- oexcel.visible=true
- oexcel.workbooks.open "d:\data.txt",,True,6,,,,,"|"
复制代码
data.txt内容:
张三|12345|abc|
李大四|67890|def|
作者: 普大喜奔 时间: 2014-9-20 16:07
回复 11# CrLf
你说那个打开word的代码啊 是这样- objWord.Visible=False
- '以只读方式打开,并且避免打开文件转换或编码对话框
- set docfile=objWord.Documents.Open FileName:=arg,ReadOnly:=True,ConfirmConversions:=false,NoEncodingDialog:=true
- str=docfile.Content
- docfile.Close
复制代码
作者: CrLf 时间: 2014-9-20 16:24
回复 12# 普大喜奔
同样的代码,已测无误,可能是版本差异。
我这里 MsgBox oexcel.Version 的结果是 11.0
你可以去下一个 vbsedit 或者直接用 excel 的宏编辑器,利用自动提示看下 .open 方法的参数说明,把参数对上位置就行
作者: 普大喜奔 时间: 2014-9-20 16:30
回复 14# CrLf
好的 非常非常感谢啊 有高人指点少走好多弯路
作者: 普大喜奔 时间: 2014-9-20 16:33
回复 14# CrLf
我这是12.0 难怪 微软的版本是不是太多了点
作者: zz100001 时间: 2014-9-25 15:28
新人你说分用完了,那就第二天登陆上来给补加上啊,不然会伤了大大的心,把你列入黑名单,以后再也不看你的问题了,即使换马甲也没用
作者: 普大喜奔 时间: 2014-9-25 18:12
回复 17# zz100001
已补 忙着写脚本没顾上
作者: moon3003003 时间: 2015-2-7 12:21
谢谢了,菜鸟学习
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |