Delphi操作Excel产生下拉框(100分)

  • 主题发起人 主题发起人 kangrong025
  • 开始时间 开始时间
K

kangrong025

Unregistered / Unconfirmed
GUEST, unregistred user!
请问个位大狭,我要用Delphi操作Excel2003我需要在指定的格子内产生一个下拉框可以选择
字段 请问怎么做?另外我用Excel录制产生了下拉框的VBA宏 如下: Range("E4").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="1,2,3,4,5"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = True
End With
Range("E4").Select
End Sub
请问如果要转化成Delphi代码怎么转换!请个位帮忙!
 
1、在Delphi里面是一个接口 IValidation,如果用TOLEContianer,是这样
var
IV : IValidation;
begin
if Succeeded((OleContainer1.OleObjectInterface).QueryInterface(IID_IValidation, IV)) then begin
OleContainer1.DoVerb(ovPrimary);
with IV do begin
Delete;
Add(xlValidateList, xlValidAlertStop, xlBetween, '1,2,3,4,5', EmptyParam);
Set_IgnoreBlank(True);
Set_InCellDropdown(True);
Set_InputTitle('');
Set_ErrorTitle('');
Set_InputMessage('');
Set_ErrorMessage('');
Set_IMEMode(xlIMEModeNoControl);
Set_ShowInput(True);
Set_ShowError(True);
end;
end;
OleContainer1.DoVerb(ovPrimary);
end;

--------------------
很可惜的是取不到这个接口,不知道是不是子接口,先取得其他接口再QueryInterface


2、用Server组件,首先需要建立ExeclWorkSheet,这方面的资料网上很多了,自己手动找一下, // Selection是指选中的区域,楼主自己看着处理 ,参数可能会有变化
with ExcelWorksheet1.Range.Validation do begin
Delete;
……
end;
 
后退
顶部