找回密码
 加入
搜索
查看: 3013|回复: 13

[系统综合] Excel中的VBA语句为何有时没问题,有时会出错?【已解决】

  [复制链接]
发表于 2016-11-23 11:50:23 | 显示全部楼层 |阅读模式
本帖最后由 blue_dvd 于 2016-11-29 22:24 编辑

Excel中的VBA语句在两部电脑运行,其中笔记本电脑通过运行,但台式电脑报错?
If Not FileExists(@ScriptDir&""&$result_file_name)    Then
                ;建立一个新的 xls 结果文件

                $oExcel =ObjCreate("excel.application")
                $oExcel.WorkBooks.Add
                $oExcel.activeworkbook.sheets("sheet2").delete
                $oExcel.activeworkbook.sheets("sheet3").delete
                _ExcelBookSaveAs($oExcel, @ScriptDir&""&$result_file_name)
                _ExcelBookClose($oExcel)
        
        EndIf
$oExcel.activeworkbook.sheets("sheet2").delete
提示有误
发表于 2016-11-24 20:48:54 | 显示全部楼层
如果新建的excel工作簿只有一个工作表,就不存在sheet2,就有可能会出错了
发表于 2016-11-24 22:17:51 | 显示全部楼层
回复 2# kevinch

请教一个问题 VBA 能读取指定一列到数组吗?
发表于 2016-11-25 13:37:24 | 显示全部楼层
回复 3# heroxianf
可以,不过行列与excel里是相反的
发表于 2016-11-25 13:45:55 | 显示全部楼层
回复 4# kevinch

能给出示例代码吗?   上次KK给我的代码是加载整个EXCEL表,如果我想要其中一列,这样读取是不是费事?  还有就是中间有空行空列  下面的也就自然读取不到了。先谢谢了
 楼主| 发表于 2016-11-25 18:41:19 | 显示全部楼层
回复 2# kevinch

AU3中执行VBA语句的条件是什么?
发表于 2016-11-26 14:25:04 | 显示全部楼层
回复 5# heroxianf
$excel=objcreate("excel.application")
$excel.visible=true
$wb=$excel.workbooks.open(@scriptdir&"\test.xls")
with $wb.activesheet
  $arr=.range("b2",.cells(.rows.count,2).end(3)).value
end with
这段代码读取b2到b列有数据的最后一行的代码,得到数组$arr,注意,行列与excel里是相反的
发表于 2016-11-26 14:26:01 | 显示全部楼层
回复 6# blue_dvd
改写vba语句到au3里,常量之类的全部修改为对应的值
发表于 2016-11-26 15:36:55 | 显示全部楼层
回复 7# kevinch


    太谢谢了。
发表于 2016-11-26 15:47:43 | 显示全部楼层
本帖最后由 heroxianf 于 2016-11-26 15:48 编辑

回复 6# blue_dvd

这是我以前测试改VBA宏的代码   你可以参考一下。  EXCEL.AU3 是老版本的UDF

#include <Excel.au3>

$oExcel = _ExcelBookOpen(@ScriptDir & '\Excel.xlsx')

for $i = 1 to 10000
$oExcel.range('A' & $i).Select
With $oExcel.Selection.Interior
        .Pattern = 1
        .PatternColorIndex = -4105
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
EndWith
Next
MsgBox(0, '', '暂停')

_ExcelBookClose($oExcel, 0)
 楼主| 发表于 2016-11-26 16:21:02 | 显示全部楼层
用VBA中的with语句真的很爽!
发表于 2016-11-26 19:55:10 | 显示全部楼层
回复 11# blue_dvd


    可是我不会vba
发表于 2016-11-29 06:22:10 | 显示全部楼层

RE: Excel中的VBA语句为何有时没问题,有时会出错?

请看截图。系统默认新建文件含3个表,如果这个地方修改了,就不是了。截图为2007的配置

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-11-29 10:01:36 | 显示全部楼层
回复 2# kevinch

求助一下  kevin 兄

EXCEL的Shapes 的多个组合的图形,
有沒有 VBA语法  可以禁止 使用者 用滑鼠拉動缩放比例大小 , 但是還要可以移动位置

只是不能縮放  大小
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 22:57 , Processed in 0.089938 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表