Excel宏编程只能用VBA吗?

有没有其他语言也可以进行Excel宏编程?比如C++、Java、Python?... 有没有其他语言也可以进行Excel宏编程?比如C++、Java、Python? 展开
 我来答
阳光上的桥
推荐于2018-05-10 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65812
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

        在EXCEL集成环境里面工作的的编程语言,只能是VBA,无法使用PHP、PERL、JAVA、C等其它语言。


        可以使用VBA之外的其它语言来开发EXCEL应用,但是不能在EXCEL环境里面开发和调试,只能在其它语言里面开发和调试。其它语言操作EXCEL可以使用OLE对象来实现,从下面的PERL例子代码可以明白思路和方法:


#!/usr/bin/perl  
use strict;  
use warnings;  
  
  
use Win32::OLE qw(in with);  
use Win32::OLE::Const 'Microsoft Excel';  
use Win32::OLE::NLS qw(:LOCALE :TIME);  
my $Excel = Win32::OLE->GetActiveObject('Excel.Application')  
        || Win32::OLE->new('Excel.Application', 'Quit');  
  
my$excelfile='E:\学习程序\perl\excelfile.xls';  
  
#关闭警告信息,例如保存等,不跳出确认窗口  
$Excel->{DisplayAlerts}=0;    
  
#创建一个workbook  
#my $Book=$Excel->Workbooks->Add();  
#   $Book->SaveAs($excelfile); # 增加一个workbook,然后保存  
  
#直接打开一个excel 若存在  
my$Book=$Excel->Workbooks->Open($excelfile);  
  
#创建一个worksheet对象  
my $Sheet = $Book->Worksheets("Sheet1");  
#   $Sheet->Activate();  
#   $Sheet->{Name} = "DidItInPerl";  
  
#插入数据  
my ($mday,$mon,$year) = (localtime(time))[3,4,5];  
$year += 1900;  
$mon += 1;  
my $str = $year."/".$mon."/".$mday;  
  
#Range  行方法  
$Sheet->Range("C1")->{Value}=$str;  
$Sheet->Range("D1")->{Value}="今天的日期";  
  
#迭代插入数据  
foreach my$x (1 ..50) {  
    my$range="A".$x;  
    $Sheet->Range($range)->{Value}="这是第$range行";  
}  
  
  
#循环访问sheet  
my $sheetcnt = $Book->Worksheets->Count();  
foreach (1..$sheetcnt){  
   print "\t" .$Book->Worksheets($_)->{Name} ."\n";  
}  
  
foreach my $Sheet(in $Book->{Worksheets}){  
   print "\t" .$Sheet->{Name} ."\n";  
}  
  
  
#找到最后一行 最后一列方法  
my $LastRow = $Sheet->UsedRange->Find({What=>"*",  
    SearchDirection=>xlPrevious,  
    SearchOrder=>xlByRows})->{Row};  
  
my $LastCol = $Sheet->UsedRange->Find({What=>"*",  
                  SearchDirection=>xlPrevious,  
                  SearchOrder=>xlByColumns})->{Column};  
print "最后一列:",$LastCol,"\n";  
print "最后一行:",$LastRow,"\n";  
  
  
#读取第一行到最后一行数据  
print "#" x80,"\n";  
print "读取A列第一行到最后一行数据\n";  
my$tmp;  
foreach my$last_data (1..$LastRow) {  
    $tmp=$Sheet->Range("A".$last_data)->{Value};  
    print "第$last_data行数据:",$tmp,"\n";  
}
匿名用户
2012-08-17
展开全部
哈哈!朋友 office 默认使用vba……vba代码 系统可以直接识别……
如果你对其他语言很熟悉的话,完全可以编制一段可执行的 外部程序 挂接在excel上运行 完成你需要的工作……所以只要是及其知道怎么操作 并且你把它们结合的很好的话 应该没有限制……
更多追问追答
追问
“挂接在excel上运行”是指编一段程序来读取Excel的数据吗?
追答
读写 啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
诸愉人
2012-08-24 · TA获得超过1639个赞
知道大有可为答主
回答量:4933
采纳率:0%
帮助的人:1630万
展开全部
首先,了解常见的VB指令语句,...下...如果...然后,做,而...循环。
其他词典(英语 - 中国字典),当然,如果良好的英语水平,和其他说。
程序内部是英文单词的组合。 :ColumnWidth是列+“宽度”是指列的宽度。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
petuh
推荐于2016-05-16 · TA获得超过247个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:53.8万
展开全部
关于Excel宏能否用其他语言编程的问题:
VBA是计算机语言,创造按照其规则交流的环境,其他语言有自己的独特规则,硬要VBA 接受,是不成的。
这个问题很有意思,就像英语大作家水平非常高,在汉语语言环境里高谈阔论,会受到什么效果?听众是汉语语言专家,只能看着他,目瞪口呆。
当然,请个好翻译来,那就另当别论。可以做这个功能的软件或程序。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式