[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] [已解决]VBS为什么用after:=这个写法系统一直会报错缺少)

Dim ExcelApp,objWorkbook
Set ExcelApp = CreateObject("Excel.Application")
Set objWorkbook = ExcelApp.Workbooks.Open("C:\Users\Desktop\1.xlsx")
Dim newSheet1
Set newSheet1 = objWorkbook.Worksheets.Add(after:= objWorkbook.Worksheets(objWorkbook.Worksheets.Count))
newSheet1.Name = "NewSheet 1"
objWorkbook.Save
objWorkbook.Close
ExcelApp.Quit
Set newSheet1 = Nothing
Set objWorkbook = Nothing
Set ExcelApp = Nothing
msgbox "OK"
不知道为什么after:=一直报错,明明()都不缺的
copy6楼的可解决
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 jyswjjgdwtdtj 于 2023-8-7 16:37 编辑

vb里也没这用法吧 起码vbs没有after:这玩意
你从哪里学来的? 你要达成什么目的?
如果你要搞什么像c++里那种+=在vb里有个什么rset lset vbs里就老老实实的a=a+"a"
网上没有你这奇怪用法 任何语言似乎都没有

TOP

回复 2# jyswjjgdwtdtj
就是想在在excel已有的工作表的基础上再增加几个工作表

TOP

不支持啊,只能用
,,,,,参数,,
这样子
1

评分人数


QQ 20147578

TOP

额,看到:=,第一反应是py的海象运算符

TOP

Set newSheet1 = objWorkbook.Worksheets.Add(,,1)
测试成功

QQ 20147578

TOP

回复 6# czjt1234


   成功了大侠,不过这个只能在已有的工作表后面添加工作表,如何在已有工作表的前面添加工作表啊?

TOP

回复 4# czjt1234
2个逗号,下面有大侠写出来了,试过了可以用,但是5个逗号一运行就报错

TOP

回复 1# TTTJJJ
objWorkbook.Worksheets("Sheet1").Move objWorkbook.Worksheets(3) 这段语句可以移动工作表的位置但是不是插入的方式,然后有个奇怪的地方,当sheet1在第一个工作表的时候Worksheets(X)里的X需要填写3才能移动到实际工作表2的位置;当sheet1在第2个工作表的时候Worksheets(X)里的X正常填写就能移动到实际工作表的位置,不知道啥原因,有木有大佬讲解下 :'(

TOP

回复 2# jyswjjgdwtdtj
Worksheets.Add(Before:=objWorkbook.Worksheets(1), After:=objWorkbook.Worksheets(3))
逗号就是省略before的意思,但是不知道为什么以这么用就会报错,但是用逗号表示反而就成功了

TOP

Worksheets.Add方法有四个参数,逗号是表示参数为空
before跟after是代指,代指之前跟之后的sheet,不是语句代码的一部分
建议参考下面链接
https://learn.microsoft.com/zh-c ... xcel.worksheets.add
1

评分人数

TOP

本帖最后由 jyswjjgdwtdtj 于 2023-8-8 17:05 编辑

回复 10# TTTJJJ

vbs有这么高级的东西?
话说你这能用?
  1. function a(b,c,d)
  2. msgbox d
  3. end function
  4. b=a(before:=1,after:=2)
复制代码
我试了下也不对啊

哦哦哦 我知道了 你是要按名称传递参数是吧 这东西c#都没有 就vb非常神奇地按上了
vbs肯定没有

这个add函数格式不是(before,after,……)啊 何必要这么搞嘞

TOP

回复 2# jyswjjgdwtdtj


    这个是vba, vb for application
是微软家office的宏用的语言

TOP

回复 13# 老刘1号


   嗯嗯 我知道了 这是vb里非常先进的用用形参名来传递参数的用法

TOP

返回列表