sub notool()
MenuBars(xlWorksheet).Menus("工具").Delete
end sub
解除屏蔽
sub yestool()
MenuBars(xlWorksheet).reset
end sub
Alt+F11 进入VBA 编辑
chā入模块
将上面宏复制到模块
运行宏。OK
限制使用某张工作表
解答:只有在A1单元格内输入12345时,其它单元格才能输入数据。
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect "123"
Range("$A$1").Locked = False
ActiveSheet.Protect "123"
If Target.Address = "$A$1" Then
If Cells(1, 1).Value = 12345 Then ActiveSheet.Unprotect "123"
Else
If Cells(1, 1).Value = 12345 Then ActiveSheet.Unprotect "123"
End If
End Sub
怎样建立没有右边箭头的子菜
答:我用这样的语句建立菜单,没有子菜单。是Wswx 教的
Dim Menu As CommandBarControl, SubMenu As CommandBarControl
Set Menu = Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With Menu
.Caption = "工作菜单(&G)"
End With
With Menu.Controls.Add(msoControlButton, 1, , , True)
.Caption = "输入资料 (&I)"
.OnAction = "showform"
End With
With Menu.Controls.Add(msoControlButton, 1, , , True)
.Caption = "查阅资料 (&C)"
.OnAction = "pickup"
End With
请教如何准确取值
a1格 东:ww34-99生产 ,a2格 西:123-fd-12设计开发 ,a3格 南:88-77负责销售
以上是三个单元格的内容,现在我想将产品代码单独取出放到b1,b2,b3中,不知如何处理(用vba),请指点,谢谢!规律是冒号以后,文字以前的,如上面的ww34-99,123-fd-12,88-77,如何将他们分别取出?
解答:1以 A1:A10 为例:
Sub test()
Dim rng As Range
Dim tmp As Integer
For Each rng In Range("A1:A10")
tmp = InStr(1, rng.Text, ":")
rng.Offset(0, 1) = IIf(tmp > 0, Mid(rng.Text, tmp + 1), "")
Next
End Sub
解答2:Sub test()
Dim i As Integer
Dim tmp As Integer
Dim i As Range
For Each rng In Range("A1:A10")
If rng = "" Then Exit Sub
tmp = InStr(1, rng.Text, ":")
For i = (tmp + 1) To Len(rng)
If Asc(Mid(rng, i, 1)) > 0 And Asc(Mid(rng, i, 1)) < 132 Then
rng.Offset(0, 1) = rng.Offset(0, 1) & Mid(rng, i, 1)
End If
Next
Next
End Sub
(注:正确应该是122,只不过中文字不会小于132故也没出错。字符如下:
0~9 48~57
小写a~z 97~122
大写A~Z 65~90
例: ASC(A)=65)
如何在单元格中显示文件创建的日期
答:下例显示 C:\ 中部分文件的创建日期, 涉及文件属xìng及其它, 请参阅 FileSystemObject 对象
Sub ShowFileList()
Dim fs, f, f1, fc, folderspec
folderspec = "C:\"
Set fs = CreateObject("s cripting.FileSystemObject")
Set f = fs.GetFolder(folderspec)
Set fc = f.Files
For Each f1 In fc
Debug.Print f1.Ncom, f1.DateCreated
Next
End Sub
根据系统时间判断是否执行某宏
解答:本范例设定 my_Procedure 这个宏在下午 5 点开始执行。
Application.OnTcom TcomValue("17:00:00"), "my_Procedure"
见ontcom 之help范例
解答2:本示例设置 15 秒后运行 my_Procedure 过程,从现在开始计时。
Application.OnTcom Now + TcomValue("00:00:15"), "my_Procedure"
删除当前活动工作簿
Sub 删除当前工作簿()
'
Dim x, y, z
x = ActiveWorkbook.FullNcom
z = ActiveWorkbook.Path
If z = "" Then
y = MsgBox("确实彻底删除当前工作簿吗?", vbYesNo)
If y = vbNo Then Exit Sub
If y = vbYes Then ActiveWorkbook.Close savechanges:=False
End If
If z <> "" Then
y = MsgBox("确实彻底删除当前工作簿吗?", vbYesNo)
If y = vbNo Then Exit Sub
If y = vbYes Then
ActiveWorkbook.Close savechanges:=False
Kill x
End If
End If
End Sub
如何以工作簿中的一个SHEET是否激活为判断条件
解答1:If ActiveSheet.Ncom = "Operation" Then
MsgBox "It's Ok"
Else
MsgBox "It's fault"
End If
解答2:分别建:
Private Sub Worksheet_Activate()
MsgBox "It's Ok"
End Sub
Private Sub Worksheet_Deactivate()
MsgBox "It's fault"
End Sub
教各位关于按钮位置的问题
本人设计了一个按钮,设计在A12上,现在我要在A13上加上数据后,如何让按钮的位置自动下移下一行?
解答:Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CommandButton1.Top = Range(Cells(1, 1), Cells(ActiveCell.Row, 1)).Rows.Height+15
End Sub
一个用VBA写入公式的问题
有一个这样的问题 :统计进度以每天的日期做为文件名,如今天是2002年9月23日,文件名就是2002年9月23日.xls 工作完成后用它另存为2002年9月24日.xls 明天使用2002年9月24日.xls文件。
有一个问题 如今天是23日今要在a9单元格中引用昨天2002年9月22日.xls 中的一个数据 公式= [2002年9月22日.XLS]sheet1!a10+a7/1000 也就是昨天的一个数
松语文学免费小说阅读_www.16sy.com