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'')))))';
运行到这里也会报错,请高手们指点小弟十分着急,希望得到各位的帮忙!!
在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'')))))';
运行到这里也会报错,请高手们指点小弟十分着急,希望得到各位的帮忙!!
解决方案 »
- 请问batteryinfo是怎么获得信息的?
- adoquery的updatebatch问题,(行句柄引用了一个已被删除的行或被标识为删除的行)
- 打开界面问题
- TADOTable.UpdateStatus问题
- 狐狸小鸭玉米过河问题(图形图像编程)
- 【原创】ml的感觉真好,有体验过的兄弟请进!
- 高分相赠100分,在线等待!得到我所选责的dbgrid的当前单元格行号和列号,还有怎么用代码给此单元格写内容!
- 诚聘DELPHI兼职程序员
- 能将一个function的类型定义为二维数组吗?
- 请问DBComboBox怎么用?我想让它显示一个字段的所有数据
- 如何从SQL中导出整个表结构和数据到excel中
- delphi 能否编写iscsi服务器,有例子吗?
ExcelApp.Range['A1'].Select;
range的对象不能是Excel对象,应为Sheet对象(如):
SheetObj.Range['A1'].Select;