EXCEL 自定义菜单

Sub XXXscrap()

Dim XXX As CommandBarPopup
Dim scrap As CommandBarPopup
Dim about As CommandBarControl

Dim finderror As CommandBarControl
Dim cleanup As CommandBarControl
Dim updatascrap As CommandBarControl

‘菜单栏出现公司名称
Set XXX = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup)
XXX.Caption = "XXX公司"

‘点击XXX公司,出现两个子项
Set scrap = XXX.CommandBar.Controls.Add(Type:=msoControlPopup)
scrap.Caption = "Scrap"

Set about = XXX.CommandBar.Controls.Add(Type:=msoControlButton, ID:=2950)
about.Caption = "About"
about.OnAction = "abouttony"

‘点击scrap,出现三个子项
Set cleanup = scrap.CommandBar.Controls.Add(Type:=msoControlButton)
cleanup.Caption = "Clean up data"
cleanup.OnAction = "cleanuptony"

Set finderror = scrap.CommandBar.Controls.Add(Type:=msoControlButton)
finderror.Caption = "Find error data"
finderror.OnAction = "finderrortony"

Set updatascrap = scrap.CommandBar.Controls.Add(Type:=msoControlButton)
updatascrap.Caption = "Updata Scrap"
updatascrap.OnAction = "updatascraptony"

End Sub

Excel问题集合

引用问题

我在excel中想实现这么一个功能,如单元格D12有一个数据是4,现在我想引用A4的数据,但4是由D12提供的,即如何实现A4=A(D12)。也就是,在Excel中,A7单元,能否实现把后面的数字用算式来代替,如A(3+4),或者是单元格的嵌套,A(D12),恳请高手解答。
解答:①=indirect("a"&d12)
②我的想法:借一个单元格如B4用,键入="A"&D12 在需引用的单元格键入=INDIRECT(B4)
即可,第二个:C43C54 B4="A&C4+C5 ,同①。

如何在一列列出工作薄中的所有表(表名无规律)

以下宏将在a列传回所有工作表名称。(很实用)
Sub Maco1()
For i = 1 To Sheets.Count
Cells(i, 1) = Sheets(i).Name
Next
End Sub

18位身份证号码输入的几种解决方法

相信在EXCEL这个软件中如何输入15位或18位身份证号码的问题已经困挠了许多人,因为在EXCEL中,输入超过11位数字时,会自动转为科学计数的方式,比如身份证号是:123456789012345,输入后就变成了:1.23457E+14,要解决的方法有非常非常……多种哦,呵呵,现在为大家说几种比较简单快速的方法:
  1、在A1单元输入号码时,在前面先输入’号,就是:’123456789012345,这样单元格会默认为该单元为文本方式,会完整显示出15个号码来,而不会显示那令人讨厌的科学计数方式来了。
  2、如果已经输入了大量的号码,全部以科学计数显示的话,而又懒的按照上面的方法一个一个的重新输入的话,也有这个好方法哦,比如已在单元A1A100输入了号码,按以下步骤做:》选择单元A1A100》单击鼠标右键,设置单元格式》选择自定义,在‘类型’中输入‘0’即可,轻松搞定,呵呵!!
  3、还有一种用函数来解决的方法:在A1A100已经输入大量的号码时,在B1单元中输入:=trim(‘ ‘a1),注意两个’之间是空格,这个公式的意思:先在A1单元15位号码前加个空格符号,然后用trim这个函数把空格符号去掉。输完后,B1单元也是显示出完整的15位数字了。

countif算出数值大小在50~60之间的单元格个数

解答:①你可以综合一下呀! =countif(a1:a9,">=50")-countif(a1:a9,">60")
{=SUM((a1:a9<60)*(a1:a9>50))}
③为什么{=SUM((a1:a9<60)*(a1:a9>50))}可以求出符合条件的个数,按理后面应再加一待求和区域如"B1:B9"等等,不知数组计算的内部机制是怎样的,不知谁能给个解释,谢谢!!
④这个数组公式是这样运算的: a1:a9区域的数值分别与60比较。假如a1:a9的数依次为15,25,35,45,55,65,75,85,95.那么(a1:a9<60)返回{true,true,true,true,true,false,false,false,false},同理(a1:a9>50)返回{false,false,false,false,true,true,true,true,true}。然后(a1:a9<60)*(a1:a9>50)则返回{false,false,false,false,true,false,false,false,false}。因为*表示and的意思。只有当and的对象都为真时结果才为真。。excel