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'')))))';
运行到这里也会报错,请高手们指点小弟十分着急,希望得到各位的帮忙!!