我实在是找不到答案了,这个问题好久没人能解决了,各位来看看吧!(20分)

  • 主题发起人 主题发起人 bryantd
  • 开始时间 开始时间
B

bryantd

Unregistered / Unconfirmed
GUEST, unregistred user!
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'')))))';
运行到这里也会报错,请高手们指点

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

╭=========================================╮

80G海量源代码,控件,书籍全免费狂下不停!

http://www.source520.com

╰=========================================╯
 
后退
顶部