精华内容
下载资源
问答
  • 合并单元格有真有假,如果大家不知道二者的区别,请移步[《Excel合并...接下来要讲的合并单元格是用粘贴格式产生的,如果希望清空D列中合并单元格中的隐藏单元格内容,例如:D3:D4,常规的操作方法是,选中D2,取消合

    合并单元格有真有假,如果大家不知道二者的区别,请移步《Excel合并单元格之真假李逵》先了解一下。识别两种合并单元格的方法也很简单,辅助列使用公式读取一下单元格内容,如果合并单元格之隐藏单元格仍然有内容,那么这就是粘贴格式创建的合并单元格。
    请添加图片描述
    接下来要讲的合并单元格是用粘贴格式产生的,如果希望清空D列中合并单元格中的隐藏单元格内容,例如:D3:D4,常规的操作方法是,选中D2,取消合并单元格,然后再次设置合并单元格,就会清空D3:D4单元格区域。如果工作表中有合并单元格数量很多,这样的操作会搞到令人怀疑人生。借助VBA可以快速实现这个需求。示例代码如下。

    Sub demo()
        Dim r As Range
        lst = Cells(Rows.Count, 2).End(xlUp).Row
        For i = 2 To lst
            Set r = Cells(i, 4)
            If r.MergeCells Then
                If r.MergeArea(1).Address <> r.Address Then r = ""
            End If
        Next
    End Sub
    

    【代码解析】
    第3行代码获取最后一行数据的行号。
    第4~9行代码循环处理每一行。
    第5行代码将第四列单元格对象保存在变量中。
    第6行代码判断单元格是否属于合并单元格。
    第7行代码判断当前单元格的地址是否与所在合并单元格区域第一个单元格的地址相同,如果相同,不做任何处理,如果不同,那么将清空单元格内容。
    请添加图片描述

    运行代码,妥妥的清空隐藏单元格。辅助列显示0,并不代表D列被填充了数字0,取消D2单元格的合并格式,就可以看到真实结果。

    请添加图片描述


    展开全文
  • Excel VBA单元格对象

    2020-06-18 15:08:38
    注意:①列标不区分大小写 ②VBA中字符用加双引号"",数字和变量无需加双引号""。所以,Cells(1,“A”)方式很好理解了。 多种方法引用单元格区域 Range(“A1:B2”)方式——表示A1到B2的单元格区域,包括

    多种方法引用单元格

    Range(“A1”)方式——表示A1单元格
    Cells(1,1)方式——表示A1单元格(cells属性返回单元格区域中指定行和列相交的单元格)
    Cells(1,“A”)方式——表示A1单元格Cells(2,1)方式——表示A2单元格
    [A1]方式——表示A1单元格

    注意:①列标不区分大小写 ②VBA中字符用加双引号"",数字和变量无需加双引号""。所以,Cells(1,“A”)方式很好理解了。

    多种方法引用单元格区域

    Range(“A1:B2”)方式——表示A1到B2的单元格区域,包括4个单元格
    [A1:B2]方式——表示A1到B2的单元格区域,包括4个单元格
    以下三种方式等同:
    Range(Cells(1, 1), Cells(10, 5))
    Range(“A1”, “E10”)
    Range(Range(“A1”), Range(“E10”))
    均表示工作表中A1:E10单元格区域

    优缺点讨论:Cells(1,1)缺点是形式不支持引用区域,不支持成员列表;[A1]形式不支持循环,不支持成员列表;Range(“A1”)形式支持循环,支持引用区域,支持自动列出属性,方法等成员。

    引用整行或者整列

    Range(3:3)——表示引用第三行
    Range(2:5)——表示引用第二到第五行
    Range(“D:D”)——表示引用D列(D不区分大小写)
    Rows(3)——表示引用第三行
    Rows(“3”)——表示引用第三行
    Rows(“3:5”)——表示引用第三到第五行
    Columns(3)——表示引用第三列
    Columns(“C”)——表示引用第三列
    Columns(“C:D”)——表示引用C到D列

    属性

    offset
    作用:返回Range对象,它代表位于指定单元格区域的一定的偏移量位置上的区域。
    语法
    Range.Offset(RowOffset, ColumnOffset)

    RowOffset:区域偏移的行数(正数、负数或 0(零))。正数表示向下偏移,负数表示向上偏移。默认值是 0。
    ColumnOffset:区域偏移的列数(正数、负数或 0(零))。正数表示向右偏移,负数表示向左偏移。默认值是 0。

    Resize
    语法
    Range.Resize(RowSize, ColumnSize)

    RowSize:新区域中的行数。如果省略该参数,则该区域中的行数保持不变。
    ColumnSize:新区域中的列数。如果省略该参数。则该区域中的列数保持不变。

    Range(“a1”).Resizt(3, 2).Select
    在这里插入图片描述
    End
    作用:返回一个 Range 对象,该对象代表包含源区域的区域尾端的单元格。等同于按键 End+
    ↑、End+ ↓、End+ ←或 End+ →。
    语法
    Range.End(Direction)
    Direction:所要移至的方向。(包括以下四种情况)
    xlDown 向下
    xlToLeft 向左
    xlToRight 向右
    xlUp 向上

    我们一般用end属性获取某列的最后一个非空单元格的行号
    Cells(Rows.Count, “A”).End(xlUp).row

    Address
    作用:返回单元格地址。
    MsgBox Range(“a1”).Address
    在这里插入图片描述

    Value
    作用:表示单元格里面的内容,默认属性,可省略

    常用方法

    Select
    相当于我们点住鼠标左键圈选一个单元格区域
    Range(“a1:a10”).Select

    copy
    复制内容到指定目的地的作用。
    Range(“a1”).Copy Range(“b1”) ’ 将A1单元格内容复制到B1
    Worksheets(1).Range(“a1”).Copy Worksheets(2).Range(“b1”)'将表1中A1单元格内容复制到表2单元格B1中

    Union
    将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域一起进行操作。
    Union(Worksheets(1).Range(“A1:D4”), Worksheets(1).Range(“E5:H8”)).Select
    在这里插入图片描述
    union方法一般结合find方法,在依次找到特定的单元格区域之后,联合选择然后做统一的操作。

    Clear
    清除单元格的内容
    Sub test()
    Range(“a:a”).Clear '清除A列单元格,包括数据内容和格式
    Range(“a:a”).ClearContents '如果不想清楚单元格颜色等格式,只清除A列单元格内容用ClearContentsRange(“a:a”).ClearComments '清除批注
    Range(“a:a”).ClearFormats’清除格式
    End Sub

    SpecialCells
    在Excel中使用定位对话框可以选中工作表中特定的单元格区域,而在VBA中则使用SpecialCells方法。下面这个例子实现选中含有公式的单元格。

    Sub test()
    Dim rng As Range
    Set rng = Sheet1.Range(“a1:x100”).SpecialCells(xlCellTypeFormulas)'选中A1:X100单元格区域中包含公式的单元格
    rng.Select
    End Sub
    在这里插入图片描述
    除了可以选中包含公式的单元格,我们还可以选中含有注释的单元格区域、含有相同格式的单元格区域等等。

    上述代码中xlCellTypeFormulas替换为下表中值即可
    在这里插入图片描述
    我们如果要仅复制筛选后的数据,就可以用
    SpecialCells(xlCellTypeVisible).copy

    如果判断A1:B10单元格区域若存在空格,则隐藏所在行[A1:B10].SpecialCells(xlCellTypeBlanks).Rows.Hidden =True

    整理空行工具
    Sub s()
    row1 = InputBox(“请输入需要整理空行的列(英文)”, “提示信息”)
    Range(row1 & “:” & row1).SpecialCells(xlCellTypeBlanks).Rows.Hidden = True
    End Sub

    展开全文
  • vba单元格-批注

    2020-03-01 18:50:53
    增加批注 Sub 新增批注() 'Chr(10) 代表 换行符 Range("B3").AddComment Range("B3").Comment.Text Text:="新增批注:" &...显示/隐藏批注 (Comment.Visible) Sub 显示或隐藏批注() '显示批注 Ran...
    • 增加批注
    Sub 新增批注()
        'Chr(10) 代表 换行符
        Range("B3").AddComment
        Range("B3").Comment.Text Text:="新增批注:" & Chr(10) & "123"
    End Sub
    • 显示/隐藏批注 (Comment.Visible)
    Sub 显示或隐藏批注()
        '显示批注
        Range("b2").Comment.Visible = True
        
        '隐藏批注
        Range("b2").Comment.Visible = False
    End Sub
    • 删除批注 (ClearComments)
    Sub 删除批注()
        '删除批注
        Range("B2").ClearComments
    End Sub

     

    展开全文
  • vba拷贝粘贴单元格 粘贴时忽略空白单元格 (Ignore Blank Cells When Pasting) Last week, I was working on a client's file, and we wanted to get any new information from an update file, and paste it into ...

    vba拷贝粘贴单元格

    Last week, I was working on a client's file, and we wanted to get any new information from an update file, and paste it into the current record.

    上周,我正在处理客户文件,我们希望从更新文件中获取任何新信息,并将其粘贴到当前记录中。

    Both files were set up with the same columns, but the update file only had a few of the fields filled in. We could have used a macro to loop through the fields, grab any new information, and paste it to the current record. However, that would be a slow way to update the records, especially in a large file.

    两个文件都设置有相同的列,但更新文件仅填充了一些字段。我们可以使用宏在这些字段之间循环,获取任何新信息并将其粘贴到当前记录中。 但是,这将是更新记录的缓慢方法,尤其是在大文件中。

    Fortunately, there is a built-in feature in Excel, that will copy a block of cells, and only paste the cells that contain data.

    幸运的是,Excel中有一个内置功能,它将复制一个单元格块,并且仅粘贴包含数据的单元格。

    新旧数据 (The Old and New Data)

    In the screen shot below, you can see data that is similar to the two files that I was using in the macro. At the top, you can see the current data, and the orange rows are going to be updated.

    在下面的屏幕快照中,您可以看到与我在宏中使用的两个文件相似的数据。 在顶部,您可以看到当前数据,橙色行将被更新。

    The Update file is shown at the bottom, and the green cells have some new data. I've circled a few of the places where there are blanks cells in the Update file, and valid data in the current record. We don't want to lose that data, when pasting in the new information.

    更新文件显示在底部,绿色单元格包含一些新数据。 我已经圈出了更新文件中空白单元格和当前记录中有效数据的一些位置。 粘贴新信息时,我们不想丢失这些数据。

    pastespecialblanks01

    使用粘贴特殊命令 (Use the Paste Special Command)

    To paste the new data, without overwriting the existing data with blank cells, you can use the Paste Special command.

    要粘贴新数据而不用空白单元格覆盖现有数据,可以使用“选择性粘贴”命令。

    1. Copy the green cells

      复制绿色单元格
    2. Select the top left orange cell, where the data will be pasted

      选择左上角的橙色单元格,将数据粘贴到该单元格中
    3. On the Ribbon's Home tab, click the arrow, below the Paste button

      在功能区的“主页”选项卡上,单击“粘贴”按钮下方的箭头。
    4. Click Paste Special

      单击特殊粘贴
    5. In the Paste Special window, add a check mark to "Skip Blanks", then click OK

      在“选择性粘贴”窗口中,向“跳过空白”添加一个复选标记,然后单击“确定”。

    The data from the Update records will be pasted into the current record, but the blank cells won't overwrite the cells with valid data, in the current record.

    Update记录中的数据将粘贴到当前记录中,但是空白单元格不会在当前记录中覆盖有效数据单元格。

    To use this technique in a macro, turn on the macro recorder, while you follow the steps listed above. Then, turn off the recorder, and incorporate the code into your existing macro.

    要在宏中使用此技术,请按照上面列出的步骤打开宏记录器。 然后,关闭记录器,并将代码合并到您现有的宏中。

    下载样本文件 (Download the Sample File)

    To see how this feature works, you can download the sample file from the Data Entry Tips page on my Contextures website. The zipped file is in xlsx format, and does not contain macros.

    若要查看此功能的工作原理,可以从Contextures网站上的“数据输入提示”页面下载示例文件 。 压缩文件为xlsx格式,不包含宏。

    视频:粘贴时忽略空白单元格 (Video: Ignore Blank Cells When Pasting)

    This very short video shows how to copy and paste, without overwriting the original data with blank cells.

    这个非常短的视频展示了如何复制和粘贴而不用空白单元格覆盖原始数据。

    演示地址

    翻译自: https://contexturesblog.com/archives/2014/11/20/ignore-blank-cells-when-pasting/

    vba拷贝粘贴单元格

    展开全文
  • 目录 示例: 实现代码1 行和列的隐藏 实例代码2 ...现希望筛选出销往印度尼西亚的所有销售记录,并隐藏其他销售记录,该如何用VBA实现? 日期 产销国 地区 出口金额 2010/1/1 韩国..
  • 点击按钮,显示或隐藏包含Sa或Su的列: Public hiddenTrigger As Integer '0: hide Sat&Sun; 3:unhide Sub RectangleBeveled9_Click() Dim i, j As Integer i = 6 j = Worksheets(1).UsedRange.Columns....
  • VBA单元格、工作表、工作簿

    千次阅读 2019-04-30 23:08:35
    详解VBA单元格、工作表、工作簿各种表示、方法,注意事项。
  • 很多同学想学习VBA,却没有勇气,下面是我VBA入门直播课程中的知识点,参加了培训的同学请自己对照下是否掌握了。其它有基础知识的同学也可以自检下。(报名培训班请加微信:527240310)第一讲:...
  • vba隐藏,显示列

    千次阅读 2020-04-17 10:24:54
    首页中C列内容通过超链接连接到数据库整理页面的对应列中。 支持选择性隐藏列;显示隐藏的列;隐藏所有的列 '隐藏列 Sub hidden_Click() Debug.Print "===========隐藏列时,在D列中填写1===========" Dim ...
  • 直接上代码在sheet1里面,顺便修改sheet1为Sht1 Sub Image_Change() Dim x%, y%, w%, h%, iPath$ With ActiveSheet.Shapes.Range(Array("图片")) x = .Left '记录坐标点 y = .Top '记录坐标点 ...
  • 转载自品略图书馆... 代码如下: Sub InsertPic() "ExcelHome VBA编程学习与实践 by:看见星光 Dim Arr, i&, k&, n&, pd& Dim PicName$, PicPath$, FdPath$...
  • Private Sub Worksheet_Activate() Dim A As Range, RN As Range, RNS As Range, i As Integer For Each A In [c6:c9,c12:c50] If A = "" And A.Height <> 0 Then k = k + 1 If k = 1 Then
  • vba单元格多选模板.xls

    2019-11-06 15:48:29
    excel单元格点击可多选数据模板,利用vba编程,在隐藏sheet页面存入数据,可用于编程开发当作模板读取写入数据,方便操作,需要office
  • 通过改变一个单元格内容,出发一个事件,根据改变的内容,进行相应的处理。 具体内容是,有一个单元个,里面的内容可以选择,分别是”1 选择;2填空;3读程序;4写代码“ 这里,实现的功能是,选择部分的列 (注:...
  • excel迷你图 vba 显示隐藏数据的Excel迷你图 (Show Excel Sparklines for Hidden Data) Do you use the sparklines that were introduced in Excel 2010? Last week, I was building a dashboard, and wanted to ...
  • 14 日志导出 15 excle文件格式转换 16 VBA隐藏表格 17 改变窗体外观 18 更改Sheet名 19 对文件夹中多个文件进行操作 20 合并单元格 21 插入一行单元格 22 在指定单元格内输入字符 23 调整行高和列宽 24 跳转到该列...
  • 有同学问:能不能使用union函数将符合条件的单元格所在行全部选中,然后删除. 如下图:删除黄色底纹的标题行 为此,给出代码如下: Sub test() Dim arr, myrow As String Dim cc As Variant, ran As Range r = Sheet...
  • EXCEL.VBA应用 非隐藏单元格求和

    千次阅读 2006-01-02 16:22:00
    有时候,我们会对一些数据进行隐藏(如筛选)后进行求和等运算,但在现成的公式却无法找到可利用的,所以只能依靠VBA来实现。创建自己的工作表函数,请参考:...
  • vba隐藏不要的行

    2019-10-29 18:44:12
    如,当前单元格内容是 5,6,7,则仅显示5,6,7行,其余行隐藏 Sub HIDE() Dim v As String, lines, i, firstLine, isFirstLine As Boolean v = ActiveCell.Value lines = Split(v, ",") ActiveSheet....
  • 1、单元格引用 引用 含义 Range(“A1”) 单元格A1 Range(“A1:B2”) A1到B2的单元格区域 Range(“C5:D9,G9:H16”) 多块选定区域 ...
  • 7、上级信息 parent.parent.name 8、内容判断 hasFormula 、hyperlinks.count 四、单元格格式 1、颜色 颜色的设置就两个属性 color 和 colorIndex Color 属性的属性值是rgb(1,2,3)或者QBColor(x) 2、内容判断 是否...
  • VBA常用技巧

    2014-12-21 16:39:28
    15-4 取消合并单元格时在每个单元格中保留内容 12 技巧16 高亮显示单元格区域 12 技巧17 双击被保护单元格时不显示提示消息框 12 技巧18 重新计算工作表指定区域 12 技巧19 录入数据后单元格自动保护 12 技巧20 工作...
  • Private Sub Worksheet_SelectionChange... If Left(.Value, 8) = "https://" And Right(.Value, 3) = "jpg" Then '如果单元格内容为网址 '添加网络图片,并设置为图片大小位置随单元格变化而变化 ActiveSheet.S
  • '1、用VBA单元格中输入普通公式 Sub t1() Range("d2") = "=b2*c2" End Sub '2、用VBA单元格输入带引号的公式 Sub t3() Range("c16") = "=SUMIF(A2:A6,""b"",B2:B6)" '遇到单引号就把单引号加倍 ...
  • VBA单元格操控备忘

    2017-06-23 00:23:33
    1、选取单个单元格: Sub 选取单元格B2方法1() Range("B2").Select End Sub Sub 选取单元格B2方法2() Range("B" & 2).Select End Sub Sub 选取单元格B2方法3() Cells(2, 2).Select End Sub Sub 选取单元格B2方法4...
  • VBA】通过VBA实现EXCEL全屏显示

    千次阅读 2019-04-13 10:25:21
    说明:通过VBA实现全屏显示excel界面。 测试代码: Private Sub CommandButton1_Click() If CommandButton1.Caption = "全屏显示" Then Application.DisplayFullScreen = True CommandButton1.Caption = "取消...
  • 概述 今天我哥来找我帮他搞下excel表格,本着程序猿对程序无所不能的...EXCEL的条件格式不能改变单元格的高宽,不能删掉单元格,不能隐藏单元格。 要实现这些功能需要用VBA编写宏,其中用到了EXCEL的Change事件。 EX...
  • VBA 关于 select 和 active 的区别

    千次阅读 2020-02-03 21:30:11
    select可以选择各种各样的对象 select wb/ sh/ range /cell /chart等等 active 各种当前激活的都算active select可以同时 select多个, active一般同时只有1个 ... select不能选择隐藏的对象 selec...
  • 说明:通过VBA实现真正的全屏显示excel界面。 测试代码: Private Sub CommandButton1_Click() If CommandButton1.Caption = "全屏显示" Then With Application .DisplayFullScreen = True '基本全屏 .Com...
  • 系统导出的数据,看起来是正常的,选择单元格就发现内容包含了一些随机的垃圾字符,这些垃圾字符在单元格中以白色和最小号字体显示,所以看起来正常。上网找到“Excel单元格内部分字体颜色改变”的VBA代码,参考之后...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,960
精华内容 784
关键字:

vba隐藏单元格内容