UserForm3.Show '激活窗体 End Sub '以下为窗体中点击各按钮运行的宏,写入窗体内 Public pos As Integer '声明变量pos '战友确定按钮语句 Private Sub CommandButton1_Click() Application.ScreenUpdating = False '此句和最后一句旨在不显 示宏的执行过程 'On Error GoTo ErrorHandle '可以不要 'ErrorHandle: '可以不要 'If Err.Number = 13 Then '可以不要 'Exit Sub '可以不要 'End If '可以不要 Call writeToWorkSheet '执行宏writetoworksheet UserForm3.Hide '退出窗体,继续按钮少此句,退出按钮执行此句 Unload UserForm3 '退出窗体,继续按钮少此句,退出按钮执行此句 Call 批量打印 '[此处到接顺序2] [L2] = "" '[到此处结束] Sheets("打印信息").Select Application.ScreenUpdating = True End Sub '退出按钮语句 Private Sub CommandButton2_Click() UserForm3.Hide Unload UserForm3 End Sub '将窗体内的文本框中的数据写进工作表的单元格 Private Sub writeToWorkSheet() ActiveSheet.Range("k2") = TextBox1.Value '将文字框内容写进k列 ActiveSheet.Range("l2") = TextBox2.Value '将文字框内容写进l列 TextBox1.Value = "" '清空文字框内容 TextBox2.Value = "" '清空文字框内容 Worksheets("打印信息").Range("a2").Value = 1 '给指定表的单元格写入 数据 Worksheets("打印信息").Range("B3:E113").Value = "" '清空指定表的单元 格数据 End Sub '以下为根据条件打印的宏 Sub 打印() '部门明细查询及批星打印 Application.ScreenUpdating = False '关闭屏幕更新 If Cells(1, 4) = "" And Cells(1, 5) = "" Then '打印条件Cells(3, 13) = 1 And ' Application.ActivePrinter = "//zdserver2/HP LaserJet 5000 PCL 6 在 Ne00:" ' '指定打印机 ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True '设置默认打印机的打印信息,其中Copies:=myPrint为打印份数 Else Call 打印信息 '打倒为假时执行 End If Application.ScreenUpdating = True '关闭屏幕更新 End Sub '以下的循环过程,也用于批量打印,Z的值可以是Z=1 TO 5(1到5),也可是单元格的内 容 Sub 批量打印() For Z = Cells(1, 11) To Cells(1, 12) '变量X的值从打印起始号K1到结束 号L1之间逐渐递增 Cells(1, 13) = Z 'M1的值等于变量X Next Z End Sub '以下是将打印情况写入工作表的宏 Sub 打印信息() Application.ScreenUpdating = False '关闭屏幕更新 Dim Y '声明变量 Y = ActiveSheet.Name '判定活动工作表名称 Sheets("打印信息").Select X = 3 '从第3行开始 Do While Not (IsEmpty(Cells(X, 2).Value)) '判断第1列的最后一行( 即空行的上一行) X = X + 1 '在最后一行加一行即为空行 Loop Cells(X, 2) = Cells(2, 1) Cells(X, 3) = Sheets(Y).Cells(4, 3) Cells(2, 1) = Cells(2, 1) + 1 Cells(X, 4) = Sheets(Y).Cells(1, 4) Cells(X, 5) = Sheets(Y).Cells(1, 5) [c1] = Y Sheets(Y).Select '返回上一次打开的工作表 Application.ScreenUpdating = True '打开屏幕更新 End Sub 将文件保存为以某一单元格中的值为文件名的宏怎么写 假设你要以Sheet1的A1单元格中的值为文件名保存,则应用命令: ActiveWorkbook.SaveCopyAs Str(Range("Sheet1!A1")) + ".xls" 在Excel中,如何用程式控制某一单元格不可编辑修改?thanks!!! Private Sub Workbook_Open() ProtectSpecialRange ("A1") End Sub Sub ProtectSpecialRange(RangeAddress As String) On Error Resume Next With Sheet1 .Cells.Locked = False .Range(RangeAddress).Locked = True .Protection.AllowEditRanges.Add Title:="区域1", Range:=Range (RangeAddress) _ , Password:="pass" .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End With End Sub 对工作表编程,有时要判断工作表的记录总数,VBA里如何实现? x=1 do while not (isempty(sheets("").cells(x,1).value) x=x+1 loop 在VBA中等同于EXCELE中的求和函数-sum()-的函数是什么? Application.WorksheetFunction.Sum() 自定义菜单有三个菜单项,要求手工顺序执行。为防止误操作,执行完第一个菜单项 后使其变灰(禁用),如何写? Rowen 令其 Enable 属性同步与某个工具按钮是较为方便的。 如何进行表格更新? 是这样的,比如我已经有了一个原始表格A,这时有人通知我A表有错误,须加以修改 ,并给我一个表B,表B列出了须修改的参数(注意B的列数少于A的列数,因A的其他 |