使用application.displayalerts = false 可以让2007不出现兼容性对话框,其默认应答是"继续(c)" 相应的语法如下: Excel 开发人员参考 Application.DisplayAlerts 属性 如果宏运行时 Microsoft Excel 显示特定的警告和消息,则该属性值为 True。Boolean 类型,可读写。 语法 表达式.DisplayAlerts 表达式 一个代表 Application 对象的变量。 说明 默认值为 True。如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,请将本属性设置为 False;这样每次出现需用户应答的消息时,Microsoft Excel 将选择默认应答。 如果将该属性设置为 False,则在代码运行结束后,Micorosoft Excel 将该属性设置为 True,除非正运行交叉处理代码。 如果使用工作簿的 SaveAs 方法覆盖现有文件,“覆盖”警告默认为“No”,当 DisplayAlerts 属性设置等于 False 时,Excel 选择“Yes”响应。 示例 本示例关闭工作簿 Book1.xls,但不提示用户保存所作更改。Book1.xls 中的所有更改都不会保存。 Visual Basic for Applications Application.DisplayAlerts = False Workbooks("BOOK1.XLS").Close Application.DisplayAlerts = True 一般情况下,如果某一应用程序未处于运行状态,那么当初始化与该应用程序相连的 DDE 通道时,将显示一条提示消息。本示例使该提示消息不显示。 Visual Basic for Applications Application.DisplayAlerts = False channelNumber = Application.DDEInitiate( _ app:="WinWord", _ topic:="C:\WINWORD\FORMLETR.DOC") Application.DisplayAlerts = True Application.DDEExecute channelNumber, "[FILEPRINT]" Application.DDETerminate channelNumber Application.DisplayAlerts = True
Sub dd()
x = Worksheets("Sheet1").UsedRange.Row '设置Sheet1表中有内容单元格区域的左上角第一个单元格行号为x
y = Worksheets("Sheet1").UsedRange.Column 设置Sheet1表中有内容单元格区域的左上角第一个单元格列号为y
For i = 1 To ThisWorkbook.Sheets.Count '设置遍历所有工作表循环
If Sheets(i).Name <> "Sheet1" Then '排除Sheet1表
Sheets("Sheet1").UsedRange.Copy Destination:=Sheets(i).Cells(x, y) ‘复制内容
End If
Next
End Sub
如果是复制到一个新表格中可以这样:
Sub d1()
Dim x As Integer
x = InputBox("要复制多少个表格?(原表是“Sheet1”)") '输入要复制的表格数
If x < 1 Or x = "" Then Exit Sub '数值小于1或不填内容则退出程序
For i = 1 To x '设置增加表的循环
If ThisWorkbook.Sheets.Count = 30 Then '设置允许的最大工作表数
MsgBox ("已经到了工作薄所容纳的最大工作表数")
Exit Sub
Else
Worksheets("Sheet1").Copy After:=Worksheets("Sheet1") '复制工作表
End If
Next
End Sub
ActiveSheet.Cells(i + 2, 2).Select
ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\员工照片\" & MyPcName).Select