精华内容
下载资源
问答
  • VBA编程技巧大全

    2013-08-05 09:03:19
    部分目录: VBA常用技巧 目录 VBA常用技巧 1 第1章 Range(单元格)对象 10 技巧1 单元格的引用方法 10 1-1 使用Range属性 10 1-2 使用Cells属性 11 1-3 使用快捷记号 11 1-4 使用Offset属性 12 1-5 使用Resize属性...
  • 04106判断某单元格是否为合并单元格区域的一部分 04107获取单元格区域内的值,并使其矩阵化 04108获取单元格内的前缀字符 04109判断单元格内的数字是否为文本字符 04110获取单元格的格式 04111获取单元格的字体...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
    第Ⅲ部分 理解VBA  第7章 VBA概述  7.1 BASIC的一些基本背景  7.2 关于VBA  7.2.1 对象模型  7.2.2 VBA与XLM的对比  7.3 VBA的基础知识  7.4 Visual Basic编辑器概述  7.4.1 显示Excel的“开发工具”选项卡 ...
  • 中文版Excel.2007高级VBA编程宝典 2/2

    热门讨论 2012-04-06 16:41:38
    第Ⅲ部分 理解VBA  第7章 VBA概述  7.1 BASIC的一些基本背景  7.2 关于VBA  7.2.1 对象模型  7.2.2 VBA与XLM的对比  7.3 VBA的基础知识  7.4 Visual Basic编辑器概述  7.4.1 显示Excel的“开发工具”选项卡 ...
  • 取消隐藏所有的行和列对所有合并单元格取消合并以当前时间为名字保存工作簿将每张工作表单独保存为一个PDF文件将工作簿保存为一个PDF文件保护所有带公式的单元格给选定区域交替高亮显示,增加可读性高亮显示所有带...

    这里有一部分拿来就用的宏代码,可以先观看目录看看是否有需要的。遇到需要的,复制代码块进VBE,适量修改直接运行即可。

    1. 取消隐藏所有的行和列

    2. 对所有合并单元格取消合并

    3. 以当前时间为名字保存工作簿

    4. 将每张工作表单独保存为一个PDF文件

    5. 将工作簿保存为一个PDF文件

    6. 保护所有带公式的单元格

    7. 给选定区域交替高亮显示,增加可读性

    8. 高亮显示所有带评论的单元格

    9. 在选定区域内高亮显示所有的空单元格

    10. 重新调整所有的图表为同样大小

    11. 给当前工作簿创建备份

    12. 一次性关掉所有打开的工作簿

    13. 将选中区域保存为PDF文件

    14. 删除选中单元格区域的空格字符

    15. 将选定区域内的空白单元格以0填充

    16. 合并多个工作表

    17. 合并多个Excel文件

    对于Excel来说,只需要按住Alt + F11就可以打开宏编辑器,然后点击插入->模块菜单,将代码复制进去,适当修改就可以使用了。对于WPS表格需要升级为专业版本,并且安装VBA支持才可以运行宏代码。


    '取消隐藏所有的行和列
    Sub UnhideRowsColumns()
    Columns.EntireColumn.Hidden = False
    Rows.EntireRow.Hidden = False
    End Sub
    '对所有合并单元格取消合并
    Sub UnmergeAllCells()
    ActiveSheet.Cells.UnMerge
    End Sub
    '以当前时间为名保存Excel文件
    Sub SaveWorkbookWithTimeStamp()
    Dim timestamp As String
    timestamp = Format(Date"dd-mm-yyyy") & "_" & Format(Time, "hh-ss")
        ThisWorkbook.SaveAs "目录绝对路径" & timestamp
    End Sub
    '将每张工作表单独保存为一个PDF文件
    Sub SaveWorkshetAsPDF()
    Dim ws As Worksheet
    For Each ws In Worksheets
    ws.ExportAsFixedFormat xlTypePDF, "目录绝对路径" & ws.Name & ".pdf"
    Next ws
    End Sub
    '将动作不保存为一个PDF文件
    Sub SaveWorkshetAsPDF()
    ThisWorkbook.ExportAsFixedFormat xlTypePDF, "目录绝对路径" & ThisWorkbook.Name & ".pdf"
    End Sub
    '保护所有带公式的单元格
    Sub LockCellsWithFormulas()
    With ActiveSheet
       .Unprotect
       .Cells.Locked = False
       .Cells.SpecialCells(xlCellTypeFormulas).Locked = True
       .Protect AllowDeletingRows:=True
    End With
    End Sub
    '在选中区域的每一行下面插入一个空行
    Sub InsertAlternateRows()
    Dim rng As Range
    Dim CountRow As Integer
    Dim i As Integer
    Set rng = Selection
    CountRow = rng.EntireRow.Count
    For i = 1 To CountRow
    ActiveCell.EntireRow.Insert
    ActiveCell.Offset(20).Select
    Next i
    End Sub
    '给选定区域高亮交替显示,增加表格可读性
    Sub HighlightAlternateRows()
    Dim Myrange As Range
    Dim Myrow As Range
    Set Myrange = Selection
    For Each Myrow In Myrange.Rows
       If Myrow.Row Mod 2 = 1 Then
          Myrow.Interior.Color = vbCyan
       End If
    Next Myrow
    End Sub
    '高亮显示所有带评论的单元格
    Sub HighlightCellsWithComments()
    ActiveSheet.Cells.SpecialCells(xlCellTypeComments).Interior.Color = vbBlue
    End Sub
    '高亮显示选定区域内所有的空单元格
    Sub HighlightBlankCells()
    Dim Dataset as Range
    Set Dataset = Selection
    Dataset.SpecialCells(xlCellTypeBlanks).Interior.Color = vbRed
    End Sub
    '将所有的图表调整为同样大小
    Sub Resize_Charts()
    Dim i As Integer
    For i = 1 To ActiveSheet.ChartObjects.Count
    With ActiveSheet.ChartObjects(i)
    .Width = 300
    .Height = 200
    End With
    Next i
    End Sub
    '按照时间创建当前工作簿的备份
    Sub FileBackUp()
    ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & _
    "" & Format(Date"mm-dd-yy") & " " & _
    ThisWorkbook.name
    End Sub
    '删除选中单元格区域的空格字符
    Sub RemoveSpaces()
    Dim myRange As Range
    Dim myCell As Range
    Select Case MsgBox("You Can't Undo This Action. " _
    "Save Workbook First?", _
    vbYesNoCancel, "Alert")
    Case Is = vbYesThisWorkbook.Save
    Case Is = vbCancel
    Exit Sub
    End Select
    Set myRange = Selection
    For Each myCell In myRange
    If Not IsEmpty(myCell) Then
    myCell = Trim(myCell)
    End If
    Next myCell
    End Sub
    '将选定单元格区域内的空单元格以0填充
    Sub replaceBlankWithZero()
    Dim rng As Range
    Selection.Value = Selection.Value
    For Each rng In Selection
    If rng = "" Or rng = " " Then
    rng.Value = "0"
    Else
    End If
    Next rng
    End Sub

    '合并多个工作表,这些工作表要有同样的表头,并且没有合并单元格
    Option Explicit
    Sub hebing()
        '把各班成绩表中的记录合并到"成绩表"工作表中
        Dim sht As Worksheet
        Set sht = Worksheets("成绩表")'你要合并在哪张工作表,就把哪张工作表的名字输入进去即可
        sht.Rows("2:65536").Clear      '删除成绩表中的原有记录
        Dim wt As Worksheet, xrow As Integer, rng As Range
        For Each wt In Worksheets                   '循环处理工作簿中的每张工作表
            If wt.Name <> "成绩表" Then'你需要合并数据的那张工作表的名字
                Set rng = sht.Range("A1048576").End(xlUp).Offset(10)
                xrow = wt.Range("A1").CurrentRegion.Rows.Count - 1
                wt.Range("A2").Resize(xrow, 7).Copy rng'数字7对应你要合并的工作表有多少列就写几,在本例中是7.
            End If
        Next
    End Sub
    94c837b1dcddafdeb8bc6c65273fa702.gif
    合并多个工作表
    '合并多个Excel文件,这些工作表要有同样的表头,并且没有合并单元格
    Option Explicit
    Sub HzWb()
        Dim bt As Range, r As Long, c As Long
        r = 1    '1 是表头的行数
        c = 7    '7 是表头的列数
        Dim wt As Worksheet
        Set wt = ThisWorkbook.Worksheets(1)    '将汇总表赋给变量wt
        wt.Rows(r + 1 & ":1048576").ClearContents  ' 清除汇总表中原表数据,只保留表头
        Application.ScreenUpdating = False
        Dim FileName As String, sht As Worksheet, wb As Workbook
        Dim Erow As Long, fn As String, arr As Variant
        FileName = Dir(ThisWorkbook.Path & "\*.xlsx")
        Do While FileName <> ""
            If FileName <> ThisWorkbook.Name Then        ' 判断文件是否是汇总数据的工作簿
                Erow = wt.Range("A1").CurrentRegion.Rows.Count + 1     ' 取得汇总表中第一条空行行号
                fn = ThisWorkbook.Path & "\" & FileName     '将第1个要汇总的工作簿名称赋给变量fn
                Set wb = GetObject(fn)        ' 将变量fn 代表的工作簿对象赋给变量wb
                Set sht = wb.Worksheets(1)    ' 将要汇总的工作表赋给变量sht
                ' 将工作表中要汇总的记录保存在数组arr里
                arr = sht.Range(sht.Cells(r + 1"A"), sht.Cells(1048576"B").End(xlUp).Offset(05))
                ' 将数组arr 中的数据写入工作表
                wt.Cells(Erow, "A").Resize(UBound(arr, 1), UBound(arr, 2)) = arr
                wb.Close False
            End If
            FileName = Dir    ' 用Dir 函数取得其他文件名,并赋给变量
        Loop
        Application.ScreenUpdating = True
    End Sub
    bcf5b48f78a063074a595d398ee411aa.gif
    合并多个文件

    宏代码系列到这里就结束了,Excel篇就讲这么多了。后面有了新的体会的时候再来分享。普通用户学会这些已经用的很不错了。本系列至此结束。

    展开全文
  •  其中输入数据的单元格是非锁定和非保护的, 但是其它部分, 包括工作表和工作簿都是保护和锁定的. 正常情况下, 贴进来的数据, Paste special > 文本或value是没有问题的 从Excel贴进来的数据也没有问题, 其中一个...

    我从前用Excel VBA 2003做了一个工作上用的计算器. 用来计算Step IV & Time to Trip.

     

    其中输入数据的单元格是非锁定和非保护的, 但是其它部分, 包括工作表和工作簿都是保护和锁定的.

     

    正常情况下, 贴进来的数据, Paste special > 文本或value是没有问题的

     

    从Excel贴进来的数据也没有问题, 其中一个Key形状的button还可以自动调整这些文本的格式.

     

    但是, 今天有个同学的用法是, 从Minitab 15的worksheet直接贴数据, 导致这些单元格被保护且锁定, 运行修改格式或数据的宏时会出错.

     

    微软的Office封装的其实非常不好, 问题非常多.

     

    也许, 只要是和用户交互比较多, 比较频繁的程序, 都比较容易出现各种意想不到的bug.

     

    我添加了 解除保护> 解除锁定 > 添加保护的命令之后, 这个问题解决.

    展开全文
  • 免费Spire.XLS: 处理Excel文档in C#, VB.NET

    热门讨论 2015-06-18 10:24:15
    这次格式化数字,文字缩进,定位调整,设置单元格边线,单元格填充以及保护等。 开发人员可以轻松的利用Spire.XLS for .NET向Excel文件里面写入内容,包括超过530多种的公式,70多种表格,支持插入图片,不同类型的...
  • 或者两页各显示一部分,本工具用于调整合并单元格,使其字符同时显示在两页中 【增强版跨越合并】:对选区批量逐行合并,合并时保留所有数据 【修正合并单元格】:使已经合并的区域中的每个单元格都有数据,从而在...
  • Excel百宝箱9.0无限制破解版

    热门讨论 2012-02-03 19:05:29
    或者两页各显示一部分,本工具用于调整合并单元格,使其字符同时显示在两页中 【增强版跨越合并】:对选区批量逐行合并,合并时保留所有数据 【修正合并单元格】:使已经合并的区域中的每个单元格都有数据,从而在公式...
  • Excel百宝箱

    2012-10-27 17:09:21
    或者两页各显示一部分,本工具用于调整合并单元格,使其字符同时显示在两页中 【增强版跨越合并】:对选区批量逐行合并,合并时保留所有数据 【修正合并单元格】:使已经合并的区域中的每个单元格都有数据,从而在公式...
  • 5.4 自定义VBA文本函数  第6章 处理Et期和时间 6.1 Excel如何处理日期和时间 6.1.1 了解日期序列号 6.1.2 输入日期 6.1.3 理解时间序列号 6.1.4 输入时间 6.1.5 日期和时间的格式化 6.1.6 有关日期的问题 ...
  • 5.4 自定义VBA文本函数  第6章 处理Et期和时间 6.1 Excel如何处理日期和时间 6.1.1 了解日期序列号 6.1.2 输入日期 6.1.3 理解时间序列号 6.1.4 输入时间 6.1.5 日期和时间的格式化 6.1.6 有关日期的问题 ...
  • 或者两页各显示一部分,本工具用于调整合并单元格,使其字符同时显示在两页中 【增强版跨越合并】:对选区批量逐行合并,合并时保留所有数据 【修正合并单元格】:使已经合并的区域中的每个单元格都有数据,从而在公式...
  • 3 修复在保护工作表状态下编辑受保护单元格无法退出的问题 4 修复了在VBA中通过数组向RANGE赋空值显示为#Value!错误的问题 5 修复了激活WPS表格的OLE对象后,在状态栏上无法查看统计结果 6 修复了复制单元格会添加...
  • Excel终极伴侣

    2008-03-13 17:03:14
    5、保存为图片文件(将其中的部分内容如单元格区域、Shape对象等保存到磁盘); 6、全功能批注(真正所见即所得的批注编辑); 7、VB/VBA代码归纳与重写(一种保护VB/VBA代码的很有效的方法); 8、解除...
  • EXCEL集成工具箱V6.0

    2010-09-11 01:44:37
    完 美 背 景 着 色 【选区背景】 默认启动智能着色方式,此功能会清除一部分背景颜色,但对工作表中的条件格式会作完全保留,丝毫没有影响。最大的特点是支持屏幕行列捲轴的操作而不影响显示。 【选区背景选择】 ...
  • 【选区背景】 默认启动智能着色方式,此功能会清除一部分背景颜色,但对工作表中的条件格式会作完全保留,丝毫没有影响。最大的特点是支持屏幕行列捲轴的操作而不影响显示。 【选区背景选择】 进行着色功能切换,...
  • 【选区背景】 默认启动智能着色方式,此功能会清除一部分背景颜色,但对工作表中的条件格式会作完全保留,丝毫没有影响。最大的特点是支持屏幕行列捲轴的操作而不影响显示。 【选区背景选择】 进行着色功能切换,...
  • 完 美 背 景 着 色 【选区背景】 默认启动智能着色方式,此功能会清除一部分背景颜色,但对工作表中的条件格式会作完全保留,丝毫没有影响。最大的特点是支持屏幕行列捲轴的操作而不影响显示。 【选区背景选择】 ...
  • 【选区背景】 默认启动智能着色方式,此功能会清除一部分背景颜色,但对工作表中的条件格式会作完全保留,丝毫没有影响。最大的特点是支持屏幕行列捲轴的操作而不影响显示。 【选区背景选择】 进行着色功能切换,...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...
  • 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化...

空空如也

空空如也

1 2 3
收藏数 51
精华内容 20
关键字:

vba保护部分单元格