blue_dvd 发表于 2016-11-23 11:50:23

Excel中的VBA语句为何有时没问题,有时会出错?【已解决】

本帖最后由 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提示有误

kevinch 发表于 2016-11-24 20:48:54

如果新建的excel工作簿只有一个工作表,就不存在sheet2,就有可能会出错了

heroxianf 发表于 2016-11-24 22:17:51

回复 2# kevinch

请教一个问题 VBA 能读取指定一列到数组吗?

kevinch 发表于 2016-11-25 13:37:24

回复 3# heroxianf
可以,不过行列与excel里是相反的

heroxianf 发表于 2016-11-25 13:45:55

回复 4# kevinch

能给出示例代码吗?   上次KK给我的代码是加载整个EXCEL表,如果我想要其中一列,这样读取是不是费事?还有就是中间有空行空列下面的也就自然读取不到了。先谢谢了

blue_dvd 发表于 2016-11-25 18:41:19

回复 2# kevinch

AU3中执行VBA语句的条件是什么?

kevinch 发表于 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里是相反的

kevinch 发表于 2016-11-26 14:26:01

回复 6# blue_dvd
改写vba语句到au3里,常量之类的全部修改为对应的值

heroxianf 发表于 2016-11-26 15:36:55

回复 7# kevinch


    太谢谢了。

heroxianf 发表于 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)

blue_dvd 发表于 2016-11-26 16:21:02

用VBA中的with语句真的很爽!

heroxianf 发表于 2016-11-26 19:55:10

回复 11# blue_dvd


    可是我不会vba{:face (197):}

h20040606 发表于 2016-11-29 06:22:10

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

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

kk_lee69 发表于 2016-11-29 10:01:36

回复 2# kevinch

求助一下kevin 兄

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

只是不能縮放大小
页: [1]
查看完整版本: Excel中的VBA语句为何有时没问题,有时会出错?【已解决】