ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 兰色幻想

带你入门VBA,第四讲(如何控制关于工作薄与工作表)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-3-23 16:19 | 显示全部楼层

Sub 按钮2_单击()
For i = 10 To 13
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="c:\" & i & ".xls"
Next
Workbooks("12.xls").Close
MsgBox Workbooks.Count
End Sub

一个迟到的学生

TA的精华主题

TA的得分主题

发表于 2006-4-13 13:55 | 显示全部楼层
我也来了

TA的精华主题

TA的得分主题

发表于 2006-5-2 01:09 | 显示全部楼层

一天跟一章,还是觉得累,不知道老师有没有把这些精彩的贴子整理成册.期待中!

TA的精华主题

TA的得分主题

发表于 2006-8-1 04:28 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-8-21 15:25 | 显示全部楼层
QUOTE:
以下是引用兰色幻想在2004-10-14 11:57:00的发言:

用程序为一个文件加个密码:

Workbooks.Open "c:\12.xls"
Workbooks("12.xls").SaveAs Filename:="C:\12.xls", Password:="123"
Workbooks("12.xls").Close

文件加密,为什么这样不可以?

Sub test8()
Workbooks("d:\1.xls").Password = "123"
End Sub

TA的精华主题

TA的得分主题

发表于 2006-8-21 15:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用happy91在2004-10-14 13:29:00的发言:

不是要的结果[em06]

Private Sub Workbook_NewSheet(ByVal Sh As Object)
Application.DisplayAlerts = False
Sh.Delete
Application.DisplayAlerts = True
End Sub

NewSheet为工作簿事件,当在工作簿中插入工作表时触发该事件,故只能将其放置在thisworkbook模块中,不能放在其他地方!

 关于工作簿事件可以在VBE中,在THISWORKBOOK中查看

TA的精华主题

TA的得分主题

发表于 2006-8-21 16:10 | 显示全部楼层
QUOTE:
以下是引用兰色幻想在2004-10-14 15:27:00的发言:

不能

我记得有一种方法在vba中可以打开其他类型的文件,如:mp3

TA的精华主题

TA的得分主题

发表于 2006-8-21 16:37 | 显示全部楼层
QUOTE:
以下是引用兰色幻想在2004-10-15 8:49:00的发言:

有兴趣的请做个练习(这些问题都是经常有人问):

1、如何一次性给所有工作表改名为A1、A2、A3....?

2、如何一次保护(或解除保护)所有工作表?

3、在闭工作薄前隐藏N-1个工作表(N是工作薄内工作表的总数),只留一个工作表?

Sub test10()
'有兴趣的请做个练习(这些问题都是经常有人问):

'1、如何一次性给所有工作表改名为A1、A2、A3....?

'2、如何一次保护(或解除保护)所有工作表?

'3、在闭工作薄前隐藏N-1个工作表(N是工作薄内工作表的总数),只留一个工作表?
Workbooks("第五讲 如何控制工作簿与工作表").Activate
For i = 1 To Sheets.Count
   With Worksheets(i)
       .Name = "A" & i
       .Protect Password:="123"
   End With
Next i


End Sub

第三个问题

Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 1 To Sheets.Count
    If i <> Sheets.Count Then
         Sheets(i).Visible = False
        
    End If
Next i

End Sub

TA的精华主题

TA的得分主题

发表于 2006-8-21 17:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
QUOTE:
以下是引用yigepure在2004-10-15 15:24:00的发言:

我要是没有这个S就会出现以下提示

编辑错误:

过程声明和事件描述不匹配,或声明重复.我将它们改为

Private Sub workbook_beforeclose(ByVal sh As Object, c As Integer)
Dim b As Integer
b = Worksheets.Count
For c= 2 To b
Sheets(a).Visible = False
Next c
End Sub

还是老样子,如果加了S,又是不执行呀

beforeclose为工作簿事件,他有固定的参数,这里不能直接自定义参数,将其修改为

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim b As Integer
b = Application.Worksheets.Count
'If b > 1 Then
For a = 2 To b
Sheets(a).Visible = False
Next a
'End If
End Sub

TA的精华主题

TA的得分主题

发表于 2006-8-21 21:12 | 显示全部楼层
QUOTE:
以下是引用兰色幻想在2004-10-22 20:32:00的发言:

再出个习题:新建一个工作薄,添加5个工作表,再为工作表分别命名为1、2、3、4、5

再把顺序随意打乱

要求:编一个程序,使工作表按名称的数字大小排序

Private Sub CommandButton1_Click()
'Dim t As Integer
't = Sheets.Count
'If t > 5 Then Exit Sub
'For i = t + 1 To 5
'  Worksheets.Add
'Next i
'For t = 1 To 5
'  Sheets(t).Name = t
'Next t
'冒泡法排序
For t = 1 To 4
  For k = t + 1 To 5
     If Val(Sheets(t).Name) > Val(Sheets(k).Name) Then
         Sheets(k).Move Before:=Sheets(t)
     End If
  Next k
Next t
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-20 11:25 , Processed in 0.047335 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表