當前位置:成語大全網 - 書法字典 - Excel宏編程只能用VBA?

Excel宏編程只能用VBA?

在EXCEL集成環境下工作的編程語言只能是VBA,不能使用PHP、PERL、JAVA、C等其他語言。

EXCEL應用程序可以用VBA以外的語言開發,但不能在EXCEL環境下開發調試,只能用其他語言。其他語言的EXCEL操作可以通過使用OLE對象來實現,從下面的PERL示例代碼中可以理解其中的思路和方法:

#!/usr/bin/perl?

使用?嚴格;?

使用?警告;?

使用?Win32::OLE?qw(in?用);?

使用?Win32::OLE::Const?微軟?excel ';?

使用?Win32::OLE::NLS?qw(:區域設置?:時間);?

我的?$Excel?=?win32::OLE-& gt;GetActiveObject('Excel。應用’)?

||?win32::OLE-& gt;新建(' Excel。應用程序',?退出’);?

my $ excel file = ' E:\ learning program \ perl \ excel file . xls ';?

#關閉警告信息,如保存,而不跳出確認窗口?

$ Excel-& gt;{ display alerts } = 0;

#創建工作簿?

#我的?$ Book = $ Excel-& gt;工作簿-& gt;add();?

# $ Book-& gt;save as($ excel file);?#?添加工作簿並保存?

#直接打開壹個excel?如果存在的話?

我的$ Book = $ Excel-& gt;工作簿-& gt;打開($ excel file);?

#創建工作表對象?

我的?$Sheet?=?$ Book-& gt;工作表(" sheet 1 ");?

# $ Sheet->;activate();?

# $ Sheet->;{Name}?=?”DidItInPerl”;?

#插入數據?

我的?($mday,$mon,$year)?=?(local time(time));?

美元壹年?+=?1900;?

$mon?+=?1;?

我的?$str?=?美元年。"/".$mon。"/".$ mday?

#範圍?怎麽做?

$ Sheet->;範圍(" c 1 ")-& gt;{ Value } = $ str?

$ Sheet->;範圍(" d 1 ")-& gt;{Value}=“今天的日期”;?

#叠代插入數據?

foreach?我的$x?(1?..50)?{?

我的$range="A "。$ x;?

$ Sheet->;range($ range)-& gt;{Value}= "這是行$ range ";?

}?

#在工作表中循環?

我的?$sheetcnt?=?$ Book-& gt;工作表-& gt;count();?

foreach?(1..$sheetcnt){?

打印?" \t "?。$ Book-& gt;工作表($ _)-& gt;{Name}?。”\ n”;?

}?

foreach?我的?$Sheet(in?$ Book-& gt;{Worksheets}){?

打印?" \t "?。$ Sheet->;{Name}?。”\ n”;?

}?

#找到最後壹行?最後壹個方法列表?

我的?$LastRow?=?$ Sheet->;used range-& gt;查找({ What = & gt"*",?

SearchDirection = & gtxlPrevious,?

SearchOrder = & gtxlByRows })-& gt;{ Row };?

我的?$LastCol?=?$ Sheet->;used range-& gt;查找({ What = & gt"*",?

SearchDirection = & gtxlPrevious,?

SearchOrder = & gtxlByColumns })-& gt;{ Column };?

打印?最後壹列:“,$LastCol,”\ n”;?

打印?"最後壹行:",$LastRow," \ n ";?

#從第壹行到最後壹行讀取數據?

打印?"#"?x80," \ n ";?

打印?”從列A的第壹行到最後壹行讀取數據\ n”;?

我的$ tmp?

foreach?我的$last_data?(1..$LastRow)?{?

$ tmp = $ Sheet-& gt;範圍(" A "。$ last _ data)-& gt;{ Value };?

打印?"行$last_data中的數據:",$tmp," \ n ";?

}