当前位置:主页>仓库管理软件> 列表

关于Delphi操作Excel的两个问题。有兴趣的朋友进来 找家庭记账软件哪个好

库存管理软件版1楼: 1、关于生成下拉列表的做法。
在Excel中的操作如下:
(1)选中一个单元格
(2)工具栏中的 数据——>有效性——>“设置”选项卡——>在“允许”下拉列表中选中“序列”——>在“来源”中输入下拉列表中要出现的值,用英文逗号“,”隔开。比如AAA,BBB,CCC。
通过录制宏,VBA代码如下:
Sub Macro1()

Range("A1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="AAA,BBB,CCC"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = True
End With
End Sub
我在Delphi中利用OLE与Excel建立关联,为了实现这个功能,写了如下代码:
ExcelApp.Range[''A1''].Select;
ExcelApp.Selection.Validation.Formula1:=''AAA,BBB,CCC'';
但是运行时会在这里报错,请各位指点迷津。

2、关于一个公式的生成,通过录制宏代码,某个公式的宏代码如下:
ActiveCell.FormulaR1C1 = _
"=IF(R[-2]C>90,""100"",IF(R[-2]C>84,""90"",IF(R[-2]C>79,""80"",IF(R[-2]C>69,""70"",IF(R[-2]C>59,""60"",""45"")))))"
按照宏代码和Delphi代码的一般规律,我在Delphi中将其改下如下:
ExcelApp.Range[''B1''].Select;
ExcelApp.ActiveCell.FormulaR1C1:=''=IF(R[-2]C>90,''''100'''',IF(R[-2]C>84,''''90'''',IF(R[-2]C>79,''''80'''',IF(R[-2]C>69,''''70'''',IF(R[-2]C>59,''''60'''',''''45'''')))))'';
运行到这里也会报错,请高手们指点

小弟十分着急,希望得到各位的帮忙!!

2楼: VBA不会。帮你顶了。
但是楼主好像分给的太少了些,高手们一看这点分看都不看了。 如家庭记账软件哪个好

3楼: 又再看了看,你用的 ExcelApp.Selection.Validation.Formula1:=''AAA,BBB,CCC''; 中的ExcelApp是不是ExcelApplication啊?如果是的话那当然是错的了,还应该使用ExcelWorkBook和ExcelWorkSheet吧?!
对单元格的操作应该使用ExcelWorkSheet来控制吧?

4楼: 我没有使用Office组件里建立连接,是这样做的:
var ExcelApp, WorkBook:OleVariant;
begin
ExcelApp:=CreateOleObject(''Excel.Application'');
WorkBook:=CreateOleObject(''Excel.Sheet'');
WorkBook:=ExcelApp.WorkBooks.Add;
Try
WorkBook.SaveAs(''Test.xls'');
Except
ShowMessage(''The report file will be saved as Test$.xls'');
WorkBook.SaveAs(''Test$.xls'');
end;
ExcelApp.WorkSheets[1].Name:=''SheetOne'';
ExcelApp.WorkSheets[2].Name:=''SheetTwot'';
ExcelApp.WorkSheets[3].Name:=''SheetThree'';

ExcelApp.WorkSheet[''SheetOne''].Activate;

…………//中间的具体操作
对单元格的操作都可以用ExcelApp了。所以问题不是出在这个上面~~~

WorkBook.Save;
WorkBook.Close;
ExcelApp.Quit;
end;

5楼: 那我就爱莫能助了.....帮你顶、喊高手!

6楼: …………我实在没什么分了,不好意思了

库存管理软件版7楼: 帮顶!

http://www.source520.com

站长开发推广同盟 站长朋友的终极驿站
同时拥有海量源码电子经典书籍下载

http://www.source520.com/search/search.asp

"编程.站长"论坛搜索引擎-----为中国站长注入动力!

8楼: 旧事重提,这个问题还没有人能回答吗?