ad

工作表(Worksheet)相干的属性和基本操作利用示例-英雄云拓展知识分享

匿名投稿 17721 2024-09-29

在编写代码时,常常要援用工作表的名字、知道工作表在工作簿中的位置、增加工作表、删除工作表、复制工作表、移开工作表、重命名工作表,等等。

在编写代码时,常常要援用工作表的名字、知道工作表在工作簿中的位置、增加工作表、删除工作表、复制工作表、移开工作表、重命名工作表,等等。下面介绍与此有关及相干的一些属性和方法示例。
--------------------------------------------------------------------------------
[示例04-01]增加工作表(Add方法)
Sub AddWorksheet()
  MsgBox "在当前工作簿中添加一个工作表"
  Worksheets.Add
  MsgBox "在当前工作簿中的工作表sheet2之前添加一个工作表"
  Worksheets.Add before:=Worksheets("sheet2")
  MsgBox "在当前工作簿中的工作表sheet2以后添加一个工作表"
  Worksheets.Add after:=Worksheets("sheet2")
  MsgBox "在当前工作簿中添加3个工作表"
  Worksheets.Add Count:=3
End Sub
示例说明:Add方法带有4个可选的参数,其中参数Before和参数After指定所增加的工作表的位置,但两个参数只能选一;参数Count用来指定增加的工作表数目。
--------------------------------------------------------------------------------
[示例04-02]复制工作表(Copy方法)
Sub CopyWorksheet()
  MsgBox "在当前工作簿中复制工作表sheet1并将所复制的工作表放在工作表sheet2之前"
  Worksheets("sheet1").Copy Before:=Worksheets("sheet2")
  MsgBox "在当前工作簿中复制工作表sheet2并将所复制的工作表放在工作表sheet3以后"
  Worksheets("sheet2").Copy After:=Worksheets("sheet3")
End Sub
示例说明:Copy方法带有2个可选的参数,即参数Before和参数After,在使用时两个参数只参选一。
--------------------------------------------------------------------------------
[示例04-03]移开工作表(Move方法)
Sub MoveWorksheet()
  MsgBox "在当前工作簿中将工作表sheet3移至工作表sheet2之前"
  Worksheets("sheet3").Move Before:=Worksheets("sheet2")
  MsgBox "在当前工作簿中将工作表sheet1移至最后"
  Worksheets("sheet1").Move After:=Worksheets(Worksheets.Count)
End Sub
示例说明:Move方法与Copy方法的参数相同,作用也一样。
--------------------------------------------------------------------------------
[示例04-04]隐藏和显示工作表(Visible属性)
[示例04-04-01]
Sub testHide()
  MsgBox "第一次隐藏工作表sheet1"
  Worksheets("sheet1").Visible = False
  MsgBox "显示工作表sheet1"
  Worksheets("sheet1").Visible = True
  MsgBox "第2次隐藏工作表sheet1"
  Worksheets("sheet1").Visible = xlSheetHidden
  MsgBox "显示工作表sheet1"
  Worksheets("sheet1").Visible = True
  MsgBox "第3次隐藏工作表sheet1"
  Worksheets("sheet1").Visible = xlSheetHidden
  MsgBox "显示工作表sheet1"
  Worksheets("sheet1").Visible = xlSheetVisible
  MsgBox "第4隐藏工作表sheet1"
  Worksheets("sheet1").Visible = xlSheetVeryHidden
  MsgBox "显示工作表sheet1"
  Worksheets("sheet1").Visible = True
  MsgBox "第5隐藏工作表sheet1"
  Worksheets("sheet1").Visible = xlSheetVeryHidden
  MsgBox "显示工作表sheet1"
  Worksheets("sheet1").Visible = xlSheetVisible
End Sub
示例说明:本示例演示了隐藏和显示工作表的各种情形。其中,使用xlSheetVeryHidden常量来隐藏工作表,将不能经过选择工作表菜单栏中的“格式”——“工作表”——“取消隐藏”命令来取消隐藏。
--------------------------------------------------------------------------------
[示例04-04-02]
Sub ShowAllSheets()
  MsgBox "使当前工作簿中的所有工作表都显示(行将隐藏的工作表也显示)"
  Dim ws As Worksheet
  For Each ws In Sheets
    ws.Visible = True
  Next ws
End Sub
--------------------------------------------------------------------------------
[示例04-05]获得工作表数(Count属性)
[示例04-05-01]
Sub WorksheetNum()
  Dim i As Long
  i = Worksheets.Count
  MsgBox "当前工作簿的工作表数为:" & Chr(10) & i
End Sub
--------------------------------------------------------------------------------
[示例04-05-02]
Sub WorksheetNum()
  Dim i As Long
  i = Sheets.Count
  MsgBox "当前工作簿的工作表数为:" & Chr(10) & i
End Sub
示例说明:在一个包括图表工作表的工作簿中运行上述两段代码,将会得出不同的结果,缘由是对Sheets汇聚来说,工作表包括图表工作表。应注意Worksheets汇聚与Sheets汇聚的区分,下同。
--------------------------------------------------------------------------------
[示例04-06]获得或设置工作表名称(Name属性)
[示例04-06-01]
Sub NameWorksheet()
  Dim sName As String, sChangeName As String
  sName = Worksheets(2).Name
  MsgBox "当前工作簿中第2个工作表的名字为:" & sName
  sChangeName = "我的工作表"
  MsgBox "将当前工作簿中的第3个工作表名改成:" & sChangeName
  Worksheets(3).Name = sChangeName
End Sub
示例说明:使用Name属性可以获得指定工作表的名称,也能够设置工作表的名称。
Sub ReNameSheet()
   Dim xStr As String
Retry:
   Err.Clear
   xStr = InputBox("请输入工作表的新名称:" _
       , "重命名工作表", ActiveSheet.Name)
   If xStr = "" Then Exit Sub
   On Error Resume Next
   ActiveSheet.Name = xStr
   If Err.Number <> 0 Then
     MsgBox Err.Number & " " & Err.Description
     Err.Clear
     GoTo Retry
    End If
    On Error GoTo 0
    '.........
 End Sub
--------------------------------------------------------------------------------
[NextPage][示例04-07]激活/选择工作表(Activate方法和Select方法)
[示例04-07-01]
Sub SelectWorksheet()
  MsgBox "激活当前工作簿中的工作表sheet2"
  Worksheets("sheet2").Activate
  MsgBox "激活当前工作簿中的工作表sheet3"
  Worksheets("sheet3").Select
  MsgBox "同时选择工作簿中的工作表sheet2和sheet3"
  Worksheets(Array("sheet2", "sheet3")).Select
End Sub
示例说明:Activate方法只能激活一个工作表,而Select方法可以同时选择多个工作表。
--------------------------------------------------------------------------------
[示例04-07-02]
Sub SelectManySheet()
  MsgBox "选取第一个和第3个工作表."
  Worksheets(1).Select
  Worksheets(3).Select False
End Sub
--------------------------------------------------------------------------------
[示例04-08]获得当前工作表的索引号(Index属性)
Sub GetSheetIndex()
  Dim i As Long
  i = ActiveSheet.Index
  MsgBox "您正使用的工作表索引号为" & i
End Sub
--------------------------------------------------------------------------------
[示例04-09]选取前一个工作表(Previous属性)
Sub PreviousSheet()
  If ActiveSheet.Index <> 1 Then
    MsgBox "选取当前工作簿中当前工作表的前一个工作表"
    ActiveSheet.Previous.Activate
  Else
    MsgBox "已到第一个工作表"
  End If
End Sub
示例说明:如果当前工作表是第一个工作表,则使用Previous属性会出错。
--------------------------------------------------------------------------------
[示例04⑴0]选取下一个工作表(Next属性)
Sub NextSheet()
  If ActiveSheet.Index <> Worksheets.Count Then
    MsgBox "选取当前工作簿中当前工作表的下一个工作表"
    ActiveSheet.Next.Activate
  Else
    MsgBox “已到最后一个工作表”
  End If
End Sub
示例说明:如果当前工作表是最后一个工作表,则使用Next属性会出错。
--------------------------------------------------------------------------------
[示例04⑴1]工作表行和列的操作
[示例04⑴1-01]隐藏行
Sub HideRow()
  Dim iRow As Long
  MsgBox "隐藏当前单元格所在的行"
  iRow = ActiveCell.Row
  ActiveSheet.Rows(iRow).Hidden = True
  MsgBox "取消隐藏"
  ActiveSheet.Rows(iRow).Hidden = False
End Sub
--------------------------------------------------------------------------------
[示例04⑴1-02]隐藏列
Sub HideColumn()
  Dim iColumn As Long
  MsgBox "隐藏当前单元格所在列"
  iColumn = ActiveCell.Column
  ActiveSheet.Columns(iColumn).Hidden = True
  MsgBox "取消隐藏"
  ActiveSheet.Columns(iColumn).Hidden = False
End Sub
--------------------------------------------------------------------------------
[示例04⑴1-03]插入行
Sub InsertRow()
  Dim rRow As Long
  MsgBox "在当前单元格上方插入一行"
  rRow = Selection.Row
  ActiveSheet.Rows(rRow).Insert
End Sub
--------------------------------------------------------------------------------
[示例04⑴1-04]插入列
Sub InsertColumn()
  Dim cColumn As Long
  MsgBox "在当前单元格所在行的左侧插入一行"
  cColumn = Selection.Column
  ActiveSheet.Columns(cColumn).Insert
End Sub
--------------------------------------------------------------------------------
[示例04⑴1-05]插入多行
Sub InsertManyRow()
  MsgBox "在当前单元格所在行上方插入3行"
  Dim rRow As Long, i As Long
  For i = 1 To 3
    rRow = Selection.Row
    ActiveSheet.Rows(rRow).Insert
  Next i
End Sub
--------------------------------------------------------------------------------
[示例04⑴1-06]设置行高
Sub SetRowHeight()
  MsgBox "将当前单元格所在的行高设置为25"
  Dim rRow As Long, iRow As Long
  rRow = ActiveCell.Row
  iRow = ActiveSheet.Rows(rRow).RowHeight
  ActiveSheet.Rows(rRow).RowHeight = 25
  MsgBox "恢复到原来的行高"
  ActiveSheet.Rows(rRow).RowHeight = iRow
End Sub
--------------------------------------------------------------------------------
[示例04⑴1-07]设置列宽
Sub SetColumnWidth()
  MsgBox "将当前单元格所在列的列宽设置为20"
  Dim cColumn As Long, iColumn As Long
  cColumn = ActiveCell.Column
  iColumn = ActiveSheet.Columns(cColumn).ColumnWidth
  ActiveSheet.Columns(cColumn).ColumnWidth = 20
  MsgBox "恢复至原来的列宽"
  ActiveSheet.Columns(cColumn).ColumnWidth = iColumn
End Sub
--------------------------------------------------------------------------------
[示例04⑴1-08]恢复行高列宽至标准值
Sub ReSetRowHeightAndColumnWidth()
  MsgBox "将当前单元格所在的行高和列宽恢复为标准值"
  Selection.UseStandardHeight = True
  Selection.UseStandardWidth = True
End Sub
--------------------------------------------------------------------------------
[示例04⑴2]工作表标签
[示例04⑴2-01] 设置工作表标签的色彩
Sub SetSheetTabColor()
  MsgBox "设置当前工作表标签的色彩"
  ActiveSheet.Tab.ColorIndex = 7
End Sub
--------------------------------------------------------------------------------
[示例04⑴2-01]恢复工作表标签色彩
Sub SetSheetTabColorDefault()
  MsgBox "将当前工作表标签色彩设置为默许值"
  ActiveSheet.Tab.ColorIndex = ⑷142
End Sub
--------------------------------------------------------------------------------
[示例04⑴2-03]交替隐藏或显示工作表标签
Sub HideOrShowSheetTab()
  MsgBox "隐藏/显示工作表标签"
  ActiveWindow.DisplayWorkbookTabs = Not ActiveWindow.DisplayWorkbookTabs
End Sub
--------------------------------------------------------------------------------
[NextPage][示例04⑴3]肯定打印的页数(HPageBreaks属性与VPageBreaks属性)
Sub PageCount()
  Dim i As Long
  i = (ActiveSheet.HPageBreaks.Count + 1) * (ActiveSheet.VPageBreaks.Count + 1)
  MsgBox "当前工作表共" & i & "页."
End Sub
--------------------------------------------------------------------------------
[示例04⑴4]保护/撤消保护工作表
[示例04⑴4-01]
Sub ProtectSheet()
  MsgBox "保护当前工作表并设定密码"
  ActiveSheet.Protect Password:="fanjy"
End Sub
示例说明:运行代码后,当前工作表中将不允许编辑,除非撤消工作表保护。
--------------------------------------------------------------------------------
[示例04⑴4-02]
Sub UnprotectSheet()
  MsgBox "撤消当前工作表保护"
  ActiveSheet.Unprotect
End Sub
示例说明:运行代码后,如果原保护的工作表设置有密码,则要求输入密码。
--------------------------------------------------------------------------------
[示例04⑴4-03]保护当前工作簿中的所有工作表
Sub ProtectAllWorkSheets()
  On Error Resume Next
  Dim ws As Worksheet
  Dim myPassword As String
  myPassword = InputBox("请输入您的密码" & vbCrLf & _
   "(不输入表示无密码)" & vbCrLf & vbCrLf & _
   "确保您没有忘记密码!", "输入密码")
  For Each ws In ThisWorkbook.Worksheets
    ws.Protect (myPassword)
  Next ws
End Sub
--------------------------------------------------------------------------------
[示例04⑴4-04]撤消对当前工作簿中所有工作表的保护
Sub UnprotectAllWorkSheets()
  On Error Resume Next
  Dim ws As Worksheet
  Dim myPassword As String
  myPassword = InputBox("请输入您的密码" & vbCrLf & _
    "(不输入表示无密码)", "输入密码")
  For Each ws In ThisWorkbook.Worksheets
    ws.Unprotect (myPassword)
  Next ws
End Sub
--------------------------------------------------------------------------------
[示例04⑴4-05]仅能编辑未锁定的单元格
Sub OnlyEditUnlockedCells()
  Sheets("Sheet1").EnableSelection = xlUnlockedCells
  ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
示例说明:运行本代码后,在当前工作表中将只能对未锁定的单元格进行编辑,而其它单元格将不能编辑。未锁定的单元格是指在选择菜单“格式——单元格”命令后所弹出的对话框中的“保护”选项卡中,未选中“锁定”复选框的单元格或单元格区域。
--------------------------------------------------------------------------------
[示例04⑴5]删除工作表(Delete方法)
Sub DeleteWorksheet()
  MsgBox "删除当前工作簿中的工作表sheet2"
  Application.DisplayAlerts = False
  Worksheets("sheet2").Delete
  Application.DisplayAlerts = True
End Sub
示例说明:本示例代码使用Application.DisplayAlerts = False来屏蔽弹出的正告框。
--------------------------------------------------------------------------------
<一些编程方法和技能>
[示例04⑴6] 判断一个工作表(名)是不是存在
[示例04⑴6-01]
Sub testWorksheetExists1()
  Dim ws As Worksheet
  If Not WorksheetExists(ThisWorkbook, "sheet1") Then
    MsgBox "不能够找到该工作表", vbOKOnly
    Exit Sub
  End If
  MsgBox "已找到工作表"
  Set ws = ThisWorkbook.Worksheets("sheet1")
End Sub
'- - - - - - - - - - - - - - - - - - -
Function WorksheetExists(wb As Workbook, sName As String) As Boolean
  Dim s As String
  On Error GoTo ErrHandle
  s = wb.Worksheets(sName).Name
  WorksheetExists = True
  Exit Function
ErrHandle:
  WorksheetExists = False
  End Function
示例说明:在测试代码中,用相应的工作簿名和工作表名分别代替“ThisWorkbook”和“Sheet1”,来判断指定工作表是不是在工作簿中存在。
--------------------------------------------------------------------------------
[示例04⑴6-02]
Sub testWorksheetExists2()
  If Not SheetExists("<工作表名>") Then
    MsgBox "<工作表名> 不存在!"
  Else
    Sheets("<工作表名>").Activate
  End If
End Sub
'- - - - - - - - - - - - - - - - - - -
Function SheetExists(SheetName As String) As Boolean
  SheetExists = False
  On Error GoTo NoSuchSheet
  If Len(Sheets(SheetName).Name) > 0 Then
    SheetExists = True
    Exit Function
  End If
NoSuchSheet:
End Function
示例说明:在代码中,用实际工作表名代替<>。
--------------------------------------------------------------------------------
[示例04⑴6-03]
Sub TestingFunction()
 '如果工作表存在则返回True,否则为False
  '测试DoesWksExist1函数
  Debug.Print DoesWksExist1("Sheet1")
  Debug.Print DoesWksExist1("Sheet100")
  Debug.Print "-----"
  '测试DoesWksExist2函数
  Debug.Print DoesWksExist2("Sheet1")
  Debug.Print DoesWksExist2("Sheet100")
End Sub
‘- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Function DoesWksExist1(sWksName As String) As Boolean
  Dim i As Long
  For i = Worksheets.Count To 1 Step ⑴
    If Sheets(i).Name = sWksName Then
      Exit For
    End If
  Next
  If i = 0 Then
    DoesWksExist1 = False
  Else
    DoesWksExist1 = True
  End If
End Function
‘- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Function DoesWksExist2(sWksName As String) As Boolean
  Dim wkb As Worksheet
  On Error Resume Next
  Set wkb = Sheets(sWksName)
  On Error GoTo 0
  DoesWksExist2 = IIf(Not wkb Is Nothing, True, False)
End Function
--------------------------------------------------------------------------------
[示例04⑴7]排序工作表
[示例04⑴7-01]
Sub SortWorksheets1()
  Dim bSorted As Boolean
  Dim nSortedSheets As Long
  Dim nSheets As Long
  Dim n As Long
  nSheets = Worksheets.Count
  nSortedSheets = 0
  Do While (nSortedSheets < nSheets) And Not bSorted
    bSorted = True
    nSortedSheets = nSortedSheets + 1
    For n = 1 To nSheets - nSortedSheets
      If StrComp(Worksheets(n).Name, Worksheets(n + 1).Name, vbTextCompare) > 0 Then
        Worksheets(n + 1).Move Before:=Worksheets(n)
        bSorted = False
      End If
    Next n
   Loop
End Sub
示例说明:本示例代码采取了冒泡法排序。
--------------------------------------------------------------------------------
[示例04⑴7-02]
Sub SortWorksheets2()
  '针对字母对工作表排序
  Dim i As Long, j As Long
  For i = 1 To Sheets.Count
    For j = 1 To Sheets.Count - 1
      If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then
        Sheets(j).Move After:=Sheets(j + 1)
      End If
    Next j
  Next i
End Sub
--------------------------------------------------------------------------------
[示例04⑴7-03]
Sub SortWorksheets3()
 '以升序排列工作表
  Dim sCount As Integer, i As Integer, j As Integer
  Application.ScreenUpdating = False
  sCount = Worksheets.Count
  If sCount = 1 Then Exit Sub
  For i = 1 To sCount - 1
    For j = i + 1 To sCount
      If Worksheets(j).Name < Worksheets(i).Name Then
        Worksheets(j).Move Before:=Worksheets(i)
      End If
    Next j
  Next i
End Sub
示例说明:若想排序所有工作表,将代码中的Worksheets替换为Sheets。
--------------------------------------------------------------------------------
[示例04⑴8]删除当前工作簿中的空工作表
Sub Delete_EmptySheets()
    Dim sh As Worksheet
    For Each sh In ThisWorkbook.Worksheets
      If Application.WorksheetFunction.CountA(sh.Cells) = 0 Then
      Application.DisplayAlerts = False
        sh.Delete
        Application.DisplayAlerts = True
      End If
    Next
End Sub



选择英雄云云表单=选择更智能的办公工具

>>>>🚀🌟 点击注册 免费试用 更高级的-英雄云企业级云表单 🌟🚀 😃👉🌐>>>>

在现代企业管理中,数据的高效管理和处理至关重要。随着信息技术的不断发展,英雄云云表单已经成为了提高数据录入、管理和分析效率的不可或缺的工具。让我们来深入探讨英雄云-云表单的几大优势。

工作表(Worksheet)相干的属性和基本操作利用示例-英雄云拓展知识分享

基础字段:多样性满足业务需求

英雄云云表单中包括了各种基础字段,如单行文本多行文本数字输入框单选框复选框下拉框下拉复选框日期时间分割线等。这些字段的多样性使用户可以根据具体的业务需求,轻松进行文本、数据和时间信息的录入或修改。例如,您可以使用单行文本字段录入员工姓名、产品型号等,或者使用下拉框进行多选,根据不同情况选择更加方便的字段类型。

高级字段:提升工作效率

英雄云云表单还提供了高级字段,如地址图片附件手写签名手机子表关联数据关联查询以及流水号。这些高级字段在基础字段的基础上升级,可帮助用户完成一些琐碎的工作。例如,使用地址字段可以避免逐字打字,而流水号字段可以自动生成规律性的编号,非常适用于合同编号生成等场景。

部门成员字段:精确管理与通讯录的关联

英雄云的部门成员字段允许企业对各个部门的成员进行精确管理。用户可以通过部门成员字段获取通讯录中的部门成员信息,应用于记录报销人、报销部门等场景。这些成员字段还细分为成员单选成员多选,可根据具体需求在通讯录中选择一个或多个成员。

聚合表:数据处理更智能

英雄云聚合表功能用于对已存在的表单数据进行聚合计算,从而得到一张聚合表,后续其他表单可调用聚合表进行数据联动、关联查询和关联数据等操作完成数据处理。这一功能可应用于多种场景,如进销存管理、财务管理和门店零售管理等,帮助企业完成数据处理,提高工作效率。

表单权限设置:灵活管理数据访问

英雄云的表单权限设置允许用户根据企业的具体需求管理表单的访问和操作权限。用户可以根据系统权限或自定义权限对不同成员或团队进行权限设置,以确保数据的安全和合规性。这一功能使企业能够根据变化的业务需求和团队结构,实时调整权限设置。

自定义打印模板:文档输出更便捷

英雄云云表单支持自定义打印模板,可将表单数据转换为可打印的Word文档。用户可以根据自己的需求进行排版和编辑,将产品规格说明书等文档轻松生成。这一功能提供了一种标准化的文档输出方式,简化了信息整理的过程。

综合来看,选择英雄云云表单意味着选择更智能、更灵活、更高效的数据管理工具。无论是提高工作效率,精确管理数据,还是实现数据处理,英雄云云表单都能满足您的多样化需求,助力您的业务发展。

如果您正在寻找一款强大的云表单工具,不妨考虑英雄云,它将为您带来更多的便捷和智能,助您事半功倍。


免责声明:

本网址(www.yingxiongyun.com)发布的材料主要源于独立创作和网友匿名投稿等来源。此处提供的所有信息仅供参考之用。我们致力于提供准确且可信的信息,但不对材料的完整性或真实性作出任何保证。用户应自行验证相关信息的正确性,并对其决策承担全部责任。对于由于信息的错误、不准确或遗漏所造成的任何损失,本网址不承担任何法律责任。本网站所展示的所有内容,如文字、图像、标志、音频、视频、软件和程序等的版权均属于原创作者。如果任何组织或个人认为网站内容可能侵犯其知识产权,或包含不准确之处,请即刻联系我们进行相应处理。

上一篇:Excel制作精美的日历教程 Excel怎样制作好看的日历-英雄云拓展知识分享
下一篇:如何在Excel表格中画画?-英雄云拓展知识分享
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×