中企动力 > 商学院 > vba打开工作表
  • ?

    Excel隐藏行列、工作簿窗口与Sheet及取消全部行列与Sheet隐藏

    杭雨筠

    展开

    在 Excel 中,既可以隐藏行列又可以隐藏工作簿窗口,还可以隐藏单个 Sheet 和仅隐藏表格。其中隐藏行列可以一次只隐藏一行也可以一次隐藏多行多列,并且它们可以连续也可以不连续。把行列、工作簿窗口和 Sheet 隐藏后,如果想重新显示它们,可以取消隐藏,并且也可以一次取一个或一次取消全部。行列可以用简单的操作实现一次取消全部隐藏,然而,Sheet 需要用宏 VBA 实现。以下是Excel隐藏与取消一行一列与多行多列、工作簿窗口与Sheet及一次取消隐藏全部Sheet的具体操作方法,操作中所用版本为 Excel 2016。

    一、Excel隐藏行列与取消隐藏行列

    (一)隐藏与取消隐藏一行

    1、假如要隐藏第三行。单击第三行左边的行号3选中它,右键它,在弹出的菜单中选择“隐藏”,则第三行被隐藏,同时在第二行与第四行行号之间出现间隔,把鼠标移到该间隔的下边线,鼠标随即变为双横线双箭头形状,此时右键,在弹出的菜单中选择“取消隐藏”则被隐藏的第三行重新显示,操作过程步骤,如图1所示:

    图1

    2、取消隐藏行方法二(比上一个方法更易于操作)

    A、同样以取消被隐藏的第三行为例。选中被隐藏行上下两行,即选中第二行与第四行,右键它们,在弹出的菜单中选择“取消隐藏”,如图2所示:

    图2

    B、则第三行重新显示出来,如图3所示:

    图3

    (二)一次隐藏与取消隐藏多行

    先选中第三行,按住 Alt 键,再单击第4、9、10行前的行号选中它们,在选中的行号上右键,在弹出的菜单中选择“隐藏”,则选中的所有行被隐藏;按 Ctrl + A 选中表格所有行,在选中的行号上右键,在弹出的菜单中选择“取消隐藏”,则被隐藏的第 3、4、9、10 行重新显示,操作过程步骤,如图4所示:

    图4

    (三)隐藏与取消隐藏列

    1、隐藏与取消隐藏列的方法和隐藏与取消隐藏行的方法大同小异;当隐藏一行时与隐藏一列时,取消方法完全一样;当隐藏多行或多列时,取消隐藏行可以用选中被隐藏行上下行,然后右键选择“取消隐藏”的方法把被隐藏行重新显示出来;当隐藏多列时,再用这个方法却不行,必须按 Ctrl + A 组合键选中所有列,然后右键,再选择“取消隐藏”才能把隐藏的列显示出来,操作过程步骤,如图5所示:

    图5

    2、操作过程说明:单击B选中B列,按住 Alt,再单击 C 和 D,把 B、C、D 三列选中,右键 C,在弹出的菜单中选择“隐藏”,则选中的列被隐藏;选中 A 列和 E 列,右键 E,在弹出的菜单中选择“取消隐藏”,则被隐藏的 B、C、D 三列并未显示;按 Ctrl + A 全选,再次右键 E,同样选择“取消隐藏”,则 B、C、D 三列重新显示。

    二、Excel隐藏与取消隐藏工作簿窗口

    1、用快捷键操作。按住 Alt 键,按一次 W,按一次 H,则工作簿窗口被隐藏;按住 Alt,按一次 W,按一次 U,则打开“取消隐藏”窗口,选中要取消的工作簿(即 excel教程),单击“确定”,则工作簿窗口又重新显示,操作过程步骤,如图6所示:

    2、用鼠标操作。选择“视图”选项卡,单击“窗口”上面的“隐藏”,则工作簿被隐藏,“隐藏”随即变为灰色不可选,如图7所示:

    图7

    单击“取消隐藏”,打开“取消隐藏”窗口,选择要取消隐藏的工作簿窗口,单击“确定”,则工作簿窗口又重新显示。把工作簿窗口隐藏后,所工作簿(Sheet)都被隐藏了。

    三、Excel隐藏与取消隐藏工作簿 Sheet

    (一)隐藏与取消隐藏一个工作簿 Sheet

    假如要隐藏学生表。右键 Excel 左下角的“学生表”,在弹出的菜单中选择“隐藏”,则学生表被隐藏,此时,自动显示其右边的“服装表”,右键“服装表”,在弹出的菜单中选择“取消隐藏”,打开“取消隐藏”窗口,选择“学生表”,单击“确定”,则学生表重新显示,操作过程步骤,如图8所示:

    图8

    (二)一次取消隐藏所有工作簿 Sheet

    1、一次取消隐藏所有 Sheet 需要用宏 VBA 实现。按 Alt + F11,打开宏编辑窗口,若没有出现“模块”编辑窗口,单击“插入”,在弹出的菜单中选择“模块”,如图9所示:

    图9

    2、在模块编辑窗口中输入如下代码:

    Sub ShowSheets()

    For Each Sheet In Sheets

    Sheet.Visible = True

    Next

    End Sub

    如图10所示:

    图10

    3、演示。切换到 Excel 窗口,把三个 Sheet(即 筛选结果、重复数据和 Sheet1) 隐藏,切换到 VBA 窗口,按 F5 打开“宏”窗口,单击“运行”,则被隐藏的三个 Sheet 又重新显示,操作过程步骤,如图11所示:

    图11

    提示:若运行 VBA 后,Sheet 没有显示,检查是否启用“宏”,方法为:切换到 Excel 窗口,依次选择“文件”→ 选项 → 信任中心 → 信任中心设置 → 启用所有宏 → 确定。如果不经常用宏,执行完后,最好把宏禁用以免中病毒。

    4、VBA 代码解析

    代码是一个子函数(或者称为子过程),函数名称为 ShowSheets,意思是显示所有工作簿;函数中用了一个 For Each 循环,定义了一个 Sheet 对象,用于表示其中一个工作簿;Visible 是显示的意思,Sheet.Visible = True 是把工作簿的显示属性设置为真,也就是把工作簿显示出来;用 For Each 循环就是一次显示一个工作簿;Next 用于推进循环,即一个循环结束后继续执行下一个循环,直到遍历完所有 Sheets。

  • ?

    Excel颜色显示工作表中选定目标区域所在行和列,你学会了吗

    茶叶蛋

    展开

    我们有的时候在处理数据比较多的时候,我们要高亮显示活动单元格的所在的行和列时,怎么操作呢?

    其实有很多方法去实现这个操作,比如Excel的条件格式、VBA事件等方法去实现这个目的.

    Excel中的单元格具体该如何选中后变为高亮呢?接下来是学习啦!为大家带来的excel2007选中单元格高亮的教程,供大家参考。

    PS:以下内文是个人认为实现Excel中的单元格的高亮显示比较容易操作的一种方式.希望大家不惜我者,不畏浮云遮望眼,谢谢!

    1、如何通过VBA高亮显示EXCEL活动单元格的颜色

    我们是通过Excel VBA的SelectionChange事件功能,每当我们激活单元格时候,就自动触发事件,就执行我们设定好的功能,结果显示我们希望高亮显示单元格.我们先看看动画显示执行的结果,如下所示:

    '工作选择事件

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    '对活动工作表的所有单元格的底色变为无色

    Cells.Interior.ColorIndex = xlColorIndexNone

    '设定活动单元格的颜色,其颜色随机变化,因RND函数易失性

    Target.Interior.ColorIndex = Int(56 * Rnd() + 1)

    End Sub

    PS:附上VBA代码.

    看了实现的效果,是不是感觉很简单,其实你也可以轻松实现目的。我们现在说说这个实现的方法。

    a.我们打开工作表后,打开VBA窗口,按ALT+F11即可打开。

    b.将我们写好的代码复制到需要显示颜色的工作表中,本例中是sheet1中需要实现单元格显示高亮的结果。所有我们将代码写入到sheet1中。需要注意的一点是,当我们将代码写入到某个工作表的代码所在文件,此代码只对此工作表有效.我们返回工作表sheet1即可看到如下的效果,当然颜色是随机变化的.

    2、如何通过VBA高亮显示EXCEL活动单元格所在整行和整列的颜色

    我们是通过Excel VBA的SelectionChange事件功能,每当我们激活单元格时候,就自动触发事件,就执行我们设定好的功能,结果显示我们希望高亮显示单元格.我们先看看动画显示执行的结果,如下所示:

    整行和整列高亮显示的代码如下:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    '定义变量

    Dim rng As Range

    '设置活动单元格所有的颜色为无色

    Cells.Interior.ColorIndex = xlColorIndexNone

    '对活动单元格所在行列进行赋值给到变量

    Set rng = Application.Union(Target.EntireColumn, Target.EntireRow)

    '设定活动单元格的颜色,其颜色随机变化,因RND函数易失性

    rng.Interior.ColorIndex = Int(56 * Rnd() + 1)

    Set rng = Nothing

    End Sub

    a.我们打开工作表后,打开VBA窗口,按ALT+F11即可打开。

    b.将我们写好的代码复制到需要显示颜色的工作表中,本例中是sheet1中需要实现单元格所在整行整列显示高亮的结果。所有我们将代码写入到sheet2中。需要注意的一点是,当我们将代码写入到某个工作表的代码所在文件,此代码只对此工作表有效.我们返回工作表sheet1即可看到如下的效果,当然颜色是随机变化的.

    点击单击格式区域的单元格,就会出现其所有行和列高亮显示的效果。这个功能其实在我们日常生活中还是非常有用的哦

    PS:另外大家注意了,大家要将EXCEL的安全级别调低一点,不然不能运行宏命令的话哦。

    以上就是今天要与大家分享的技巧,希望对大家有所帮助。

    Excel中每一个方法都有特定的用途,不是它们没有用,而是你不了解或用不着,建议同学们收藏起来,万一要用着了

  • ?

    Excel表格必学秘技(干货,快拿走)

    晨星

    展开

    本专题从Excel中的一些鲜为人知的技巧入手,领略一下关于Excel的别样风情。 一、让不同类型数据用不同颜色显示   在工资表中,如果想让大于等于2000元的工资总额以“红色”显示,大于等于1500元的工资总额以“蓝色”显示,低于1000元的工资总额以“棕色”显示,其它以“黑色”显示,我们可以这样设置。   1.打开“工资表”工作簿,选中“工资总额”所在列,执行“格式→条件格式”命令,打开“条件格式”对话框。单击第二个方框右侧的下拉按钮,选中“大于或等于”选项,在后面的方框中输入数值“2000”。单击“格式”按钮,打开“单元格格式”对话框,将“字体”的“颜色”设置为“红色”。  2.按“添加”按钮,并仿照上面的操作设置好其它条件(大于等于1500,字体设置为“蓝色”;小于1000,字体设置为“棕色”)。   3.设置完成后,按下“确定”按钮。   看看工资表吧,工资总额的数据是不是按你的要求以不同颜色显示出来了。 二、建立分类下拉列表填充项   我们常常要将企业的名称输入到表格中,为了保持名称的一致性,利用“数据有效性”功能建了一个分类下拉列表填充项。   1.在Sheet2中,将企业名称按类别(如“工业企业”、“商业企业”、“个体企业”等)分别输入不同列中,建立一个企业名称数据库。   2.选中A列(“工业企业”名称所在列),在“名称”栏内,输入“工业企业”字符后,按“回车”键进行确认。   仿照上面的操作,将B、C……列分别命名为“商业企业”、“个体企业”……   3.切换到Sheet1中,选中需要输入“企业类别”的列(如C列),执行“数据→有效性”命令,打开“数据有效性”对话框。在“设置”标签中,单击“允许”右侧的下拉按钮,选中“序列”选项,在下面的“来源”方框中,输入“工业企业”,“商业企业”,“个体企业”……序列(各元素之间用英文逗号隔开),确定退出。   再选中需要输入企业名称的列(如D列),再打开“数据有效性”对话框,选中“序列”选项后,在“来源”方框中输入公式:=INDIRECT(C1),确定退出。   4.选中C列任意单元格(如C4),单击右侧下拉按钮,选择相应的“企业类别”填入单元格中。然后选中该单元格对应的D列单元格(如D4),单击下拉按钮,即可从相应类别的企业名称列表中选择需要的企业名称填入该单元格中。   提示:在以后打印报表时,如果不需要打印“企业类别”列,可以选中该列,右击鼠标,选“隐藏”选项,将该列隐藏起来即可。   三、建立“常用文档”新菜单   在菜单栏上新建一个“常用文档”菜单,将常用的工作簿文档添加到其中,方便随时调用。   1.在工具栏空白处右击鼠标,选“自定义”选项,打开“自定义”对话框。在“命令”标签中,选中“类别”下的“新菜单”项,再将“命令”下面的“新菜单”拖到菜单栏。   按“更改所选内容”按钮,在弹出菜单的“命名”框中输入一个名称(如“常用文档”)。   2.再在“类别”下面任选一项(如“插入”选项),在右边“命令”下面任选一项(如“超链接”选项),将它拖到新菜单(常用文档)中,并仿照上面的操作对它进行命名(如“工资表”等),建立第一个工作簿文档列表名称。   重复上面的操作,多添加几个文档列表名称。   3.选中“常用文档”菜单中某个菜单项(如“工资表”等),右击鼠标,在弹出的快捷菜单中,选“分配超链接→打开”选项,打开“分配超链接”对话框。通过按“查找范围”右侧的下拉按钮,定位到相应的工作簿(如“工资.xls”等)文件夹,并选中该工作簿文档。   重复上面的操作,将菜单项和与它对应的工作簿文档超链接起来。   4.以后需要打开“常用文档”菜单中的某个工作簿文档时,只要展开“常用文档”菜单,单击其中的相应选项即可。   提示:尽管我们将“超链接”选项拖到了“常用文档”菜单中,但并不影响“插入”菜单中“超链接”菜单项和“常用”工具栏上的“插入超链接”按钮的功能。   四、制作“专业符号”工具栏   在编辑专业表格时,常常需要输入一些特殊的专业符号,为了方便输入,我们可以制作一个属于自己的“专业符号”工具栏。   1.执行“工具→宏→录制新宏”命令,打开“录制新宏”对话框,输入宏名?如“fuhao1”?并将宏保存在“个人宏工作簿”中,然后“确定”开始录制。选中“录制宏”工具栏上的“相对引用”按钮,然后将需要的特殊符号输入到某个单元格中,再单击“录制宏”工具栏上的“停止”按钮,完成宏的录制。   仿照上面的操作,一一录制好其它特殊符号的输入“宏”。   2.打开“自定义”对话框,在“工具栏”标签中,单击“新建”按钮,弹出“新建工具栏”对话框,输入名称——“专业符号”,确定后,即在工作区中出现一个工具条。   切换到“命令”标签中,选中“类别”下面的“宏”,将“命令”下面的“自定义按钮”项拖到“专业符号”栏上(有多少个特殊符号就拖多少个按钮)。   3.选中其中一个“自定义按钮”,仿照第2个秘技的第1点对它们进行命名。   4.右击某个命名后的按钮,在随后弹出的快捷菜单中,选“指定宏”选项,打开“指定宏”对话框,选中相应的宏(如fuhao1等),确定退出。   重复此步操作,将按钮与相应的宏链接起来。   5.关闭“自定义”对话框,以后可以像使用普通工具栏一样,使用“专业符号”工具栏,向单元格中快速输入专业符号了。   五、用“视面管理器”保存多个打印页面   有的工作表,经常需要打印其中不同的区域,用“视面管理器”吧。   1.打开需要打印的工作表,用鼠标在不需要打印的行(或列)标上拖拉,选中它们再右击鼠标,在随后出现的快捷菜单中,选“隐藏”选项,将不需要打印的行(或列)隐藏起来。   2.执行“视图→视面管理器”命令,打开“视面管理器”对话框,单击“添加”按钮,弹出“添加视面”对话框,输入一个名称(如“上报表”)后,单击“确定”按钮。   3.将隐藏的行(或列)显示出来,并重复上述操作,“添加”好其它的打印视面。   4.以后需要打印某种表格时,打开“视面管理器”,选中需要打印的表格名称,单击“显示”按钮,工作表即刻按事先设定好的界面显示出来,简单设置、排版一下,按下工具栏上的“打印”按钮,一切就OK了。   六、让数据按需排序   如果你要将员工按其所在的部门进行排序,这些部门名称既的有关信息不是按拼音顺序,也不是按笔画顺序,怎么办?可采用自定义序列来排序。   1.执行“格式→选项”命令,打开“选项”对话框,进入“自定义序列”标签中,在“输入序列”下面的方框中输入部门排序的序列(如“机关,车队,一车间,二车间,三车间”等),单击“添加”和“确定”按钮退出。   2.选中“部门”列中任意一个单元格,执行“数据→排序”命令,打开“排序”对话框,单击“选项”按钮,弹出“排序选项”对话框,按其中的下拉按钮,选中刚才自定义的序列,按两次“确定”按钮返回,所有数据就按要求进行了排序。

    七、把数据彻底隐藏起来 工作表部分单元格中的内容不想让浏览者查阅,只好将它隐藏起来了。   1.选中需要隐藏内容的单元格(区域),执行“格式→单元格”命令,打开“单元格格式”对话框,在“数字”标签的“分类”下面选中“自定义”选项,然后在右边“类型”下面的方框中输入“;;;”(三个英文状态下的分号)。   2.再切换到“保护”标签下,选中其中的“隐藏”选项,按“确定”按钮退出。   3.执行“工具→保护→保护工作表”命令,打开“保护工作表”对话框,设置好密码后,“确定”返回。   经过这样的设置以后,上述单元格中的内容不再显示出来,就是使用Excel的透明功能也不能让其现形。   提示:在“保护”标签下,请不要清除“锁定”前面复选框中的“∨”号,这样可以防止别人删除你隐藏起来的数据。   八、让中、英文输入法智能化地出现   在编辑表格时,有的单元格中要输入英文,有的单元格中要输入中文,反复切换输入法实在不方便,何不设置一下,让输入法智能化地调整呢?   选中需要输入中文的单元格区域,执行“数据→有效性”命令,打开“数据有效性”对话框,切换到“输入法模式”标签下,按“模式”右侧的下拉按钮,选中“打开”选项后,“确定”退出。   以后当选中需要输入中文的单元格区域中任意一个单元格时,中文输入法(输入法列表中的第1个中文输入法)自动打开,当选中其它单元格时,中文输入法自动关闭。   九、让“自动更正”输入统一的文本   你是不是经常为输入某些固定的文本,如《电脑报》而烦恼呢?那就往下看吧。   1.执行“工具→自动更正”命令,打开“自动更正”对话框。   2.在“替换”下面的方框中输入“pcw”(也可以是其他字符,“pcw”用小写),在“替换为”下面的方框中输入“《电脑报》”,再单击“添加”和“确定”按钮。   3.以后如果需要输入上述文本时,只要输入“pcw”字符?此时可以不考虑“pcw”的大小写?,然后确认一下就成了。   十、在Excel中自定义函数   Excel函数虽然丰富,但并不能满足我们的所有需要。我们可以自定义一个函数,来完成一些特定的运算。下面,我们就来自定义一个计算梯形面积的函数:   1.执行“工具→宏→Visual Basic编辑器”菜单命令(或按“Alt+F11”快捷键),打开Visual Basic编辑窗口。   2.在窗口中,执行“插入→模块”菜单命令,插入一个新的模块——模块1。   3.在右边的“代码窗口”中输入以下代码:   Function V(a,b,h)V = h*(a+b)/2End Function   4.关闭窗口,自定义函数完成。   以后可以像使用内置函数一样使用自定义函数。   提示:用上面方法自定义的函数通常只能在相应的工作簿中使用。   十一、表头下面衬张图片   为工作表添加的背景,是衬在整个工作表下面的,能不能只衬在表头下面呢?   1.执行“格式→工作表→背景”命令,打开“工作表背景”对话框,选中需要作为背景的图片后,按下“插入”按钮,将图片衬于整个工作表下面。   2.在按住Ctrl键的同时,用鼠标在不需要衬图片的单元格(区域)中拖拉,同时选中这些单元格(区域)。   3.按“格式”工具栏上的“填充颜色”右侧的下拉按钮,在随后出现的“调色板”中,选中“白色”。经过这样的设置以后,留下的单元格下面衬上了图片,而上述选中的单元格(区域)下面就没有衬图片了(其实,是图片被“白色”遮盖了)。   提示?衬在单元格下面的图片是不支持打印的。   十二、用连字符“&”来合并文本   如果我们想将多列的内容合并到一列中,不需要利用函数,一个小小的连字符“&”就能将它搞定(此处假定将B、C、D列合并到一列中)。   1.在D列后面插入两个空列(E、F列),然后在D1单元格中输入公式:=B1&C1&D1。   2.再次选中D1单元格,用“填充柄”将上述公式复制到D列下面的单元格中,B、C、D列的内容即被合并到E列对应的单元格中。   3.选中E列,执行“复制”操作,然后选中F列,执行“编辑→选择性粘贴”命令,打开“选择性粘贴”对话框,选中其中的“数值”选项,按下“确定”按钮,E列的内容(不是公式)即被复制到F列中。   4.将B、C、D、E列删除,完成合并工作。   提示:完成第1、2步的操作,合并效果已经实现,但此时如果删除B、C、D列,公式会出现错误。故须进行第3步操作,将公式转换为不变的“值”。

    生成绩条 常有朋友问“如何打印成绩条”这样的问题,有不少人采取录制宏或VBA的方法来实现,这对于初学者来说有一定难度。出于此种考虑,我在这里给出一种用函数实现的简便方法。   此处假定学生成绩保存在Sheet1工作表的A1至G64单元格区域中,其中第1行为标题,第2行为学科名称。   1.切换到Sheet2工作表中,选中A1单元格,输入公式:=IF(MOD(ROW(),3)=0,″″,IF(0MOD?ROW(),3(=1,sheet1!Aū,INDEX(sheet1!$A:$G,INT(((ROW()+4)/3)+1),COLUMN())))。   2.再次选中A1单元格,用“填充柄”将上述公式复制到B1至G1单元格中;然后,再同时选中A1至G1单元格区域,用“填充柄”将上述公式复制到A2至G185单元格中。   至此,成绩条基本成型,下面简单修饰一下。   3.调整好行高和列宽后,同时选中A1至G2单元格区域(第1位学生的成绩条区域),按“格式”工具栏“边框”右侧的下拉按钮,在随后出现的边框列表中,选中“所有框线”选项,为选中的区域添加边框(如果不需要边框,可以不进行此步及下面的操作)。   4.同时选中A1至G3单元格区域,点击“常用”工具栏上的“格式刷”按钮,然后按住鼠标左键,自A4拖拉至G186单元格区域,为所有的成绩条添加边框。   按“打印”按钮,即可将成绩条打印出来。   十四、Excel帮你选函数   在用函数处理数据时,常常不知道使用什么函数比较合适。Excel的“搜索函数”功能可以帮你缩小范围,挑选出合适的函数。   执行“插入→函数...

  • ?

    excel如何启用编辑

    许淇

    展开

            excel启用宏编辑,可按以下方法操作:

            1、当打开一个带有宏代码的Excel表格时,在表格顶部会出现提示“宏已被禁用”。如果对文件内容了解,可以单击旁边显示的按钮【启用内容】可以快速启用表格中的宏代码。启用后,上面的黄色警告提示会消失。

            2、如果不想立即启用,可以单击文字“宏已被禁用”,进入启用宏的更多设置,如下图。

            3、在启用宏设置中,有两项选择【启用所有宏】和【高级选项】。在高级选项中也可以选择默认推荐或者全部启用。因为宏涉及到访问的安全,所以要根据自己情况选择设置。

            4、对宏进行设置还可以点击Excel表格上方菜单【文件】下的【选项】,在选项窗口中,点击左侧的【信任中心】命令,然后在右侧显示内容中单击【信任中心设置】按钮。

            5、在弹出的窗口左侧点击【宏设置】命令选项,右侧可以进行四种设置类型,从安全方面考虑,建议尽量不选用最后的全部启用项。

            6、通过上面步骤的设置,可以在Excel工作表中启用宏代码来提高工作效率。但是如果想对宏进行编辑和修改,应该怎么打开宏 的编辑界面呢?

            在Excel中,如果想切换调用工作表中不同的宏,可以按组合键Alt+F8,如图。可以在弹出的窗口列表中选择切换宏,然后选择运行或单步执行。

            7、如果想编辑宏代码,可以按快捷键Alt+F11瞬间打开VBA编辑窗口,再次执行快捷键回到Excel工作表窗口,大大的提高了工作效率。

    (本文内容由百度知道网友贡献)

  • ?

    VBA代码解决方案之二十五:EXCEL工作表的添加与删除

    人去空

    展开

    今日继续讲解VBA代码解决方案的第二十五讲:工作表如何添加和删除。在VBA解决方案中,在工作簿中添加工作表使用Add方法,Add 方法应用于Sheets和Worksheets对象时新建工作表、图表或宏表。

    语法:expression.Add(Before, After, Count, Type)

    参数:a) Before是可选的,指定工作表对象,新建的工作表将置于此工作表之前。b)After是可选的,指定工作表对象,新建的工作表将置于此工作表之后。 如果Before和 After两者均省略,则新建的工作表将插入到活动工作表之前。c) Count可选,要新建的工作表的数目。默认值为 1。 d) Type可选,指定新建的工作表类型。

    一 : 如果增加一个工作表,可以参考下面的通用代码:

    Sub MyAddsh()

    Dim Sh As Worksheet

    With Worksheets

    Set Sh = .Add(after:=Worksheets(.Count))

    Sh.Name = "MY"

    End With

    End Sub

    代码解析:MyAddsh过程使用Add方法在工作簿中新建“MY”工作表。

    a) 第2行代码声明变量Sh为工作表对象。

    b) 第4行行代码使用Add方法在工作簿的最后新建“数据”工作表。

    c) 第5行代码将添加的工作表重命名为“数据”。

    二 : 如果需要在工作簿中批量添加工作表,可以使用下面的代码。

    Sub MyAddsh_2()

    Dim i As Integer

    Dim sh As Worksheet

    For i = 1 To 8

    Set sh = Sheets.Add(after:=Sheets(Sheets.Count))

    sh.Name = i

    Next

    End Sub

    代码解析:MyAddsh_2过程使用For...Next 语句和Add方法在工作簿中添加8张工作表并将添加的工作表依次重命名。

    三 : 使用Delete方法可以删除工作表,应用于工作表对象的Delete方法删除指定的对象。

    语法如下:expression.Delete

    参数expression是必需的,该表达式返回“应用于”列表中的对象之一。在删除工作表时会有一个系统提示,在必要的时候要避免这个提示,如何编写这个代码呢?可以看下面的部分。

    四 : 添加和删除工作表的通用方法,在运行添加工作表代码前先删除工作簿中的工作表虽然可以避免同名错误,但也可能误删除有用的工作表,因此更为严谨的方法是在添加前先判断工作簿中是否存在相同名称的工作表,然后再进行下一步的操作。

    Sub MyAddsh_3()

    Dim sh As Worksheet

    For Each Sh In Worksheets

    If Sh.Name = "MY" Then

    MsgBox "工作簿中已有""MY""工作表,将删除原存在的工作表"

    Application.DisplayAlerts = False

    Worksheets(Worksheets.Count).Delete

    Application.DisplayAlerts = True

    EXIT FOR

    End If

    Next

    With Worksheets

    Set sh = .Add(after:=Worksheets(.Count))

    sh.Name = "MY"

    End With

    End Sub

    代码解析:MyAddsh_3过程是先检查工作表中是否含有“MY”工作表,如果有,立刻删除,最后使用Add方法在工作簿中新建“MY”工作表.

    a) For Each…. Next…. 将遍历工作表,检查原工作表中是否含有“MY”的工作表。

    b) MsgBox "工作簿中已有""MY""工作表,将删除原存在的工作表" 如果有“MY”的工作表,首先要弹出一个对话框,告知有这个工作表,讲删除。

    c) Application.DisplayAlerts = False 将关闭弹出的警告对话框。

    d) Application.DisplayAlerts = True 将打开弹出的警告对话框。

    e) Worksheets(Worksheets.Count).Delete 删除原有的工作表。

    f) Set sh = .Add(after:=Worksheets(.Count))

    sh.Name = "MY"

    添加一个新的工作表,工作表的名称为"MY"

    下面看代码的实测,代码截图:

    工作表界面截图:

    运行后首先出现下面的对话框,删除原来的工作表,之后再新建一个工作表。

    今日内容回向:

    1 ADD方法的意义是什么?

    2 DELETE方法的意义是什么?

    3 Application.DisplayAlerts 的意义是什么?

  • ?

    Excel-VBA 悄悄地拿数据——不打开Excel文档的情况下获取文档内数据

    特殊的

    展开

    前言

    首先需要感谢看官您抽空观赏本文,若有任何问题,欢迎您的指正。

    另外大家若有什么好的想法或者效果需求,可以在评论区留言或者私信我,我会尽力尝试做一做。

    如果您喜欢本文的话,可以点赞、订阅、关注、收藏、留言评论哦!谢谢!O(∩_∩)O~~

    情景还原 - 请您听我说

    Excel - VBA 让表格处理变得更简单、更便利、更有趣。

    平常我们从其他Excel表格Copy数据出来的时候,往往都会将源数据表格打开,然后提取我们所需要的部分数据;

    将这个流程整理出来就是:①打开文件资源管理器,花若干秒找到文件;②花若干秒打开文件;③选中全文并Copy(若不熟练Excel快捷键等,可能Copy过程要多耽误几秒);④回到需要数据的文档粘贴下来(若开的文件较多,可能切换时也要耽误几秒)。

    那这上面的看似复杂的流程,可否有便利快捷的办法完成呢?

    答案肯定是 —— 有。用VBA代码就能将上面的流程简化到只要【找文件】这一步。

    功能介绍 - “吹”来“吹”去

    流程简洁方便,只需要找到那份文档即可;

    若源数据文档只有一个工作表,则直接汇入数据;

    若待汇入源数据文档含有多个工作表,会提示选择需要汇入的表格;

    若输入非关键值,则会报错并重新提示输入值。

    效果演示 - 调皮的 GIF 环节

    依旧是那句:万般文字也不如一个视频或者一张GIF演示来的痛快,请看官您静静观赏。

    首先是一份正常使用情况下的完成流程:

    调皮的 GIF 图有点点长 ~.~

    当输入关键字时,输入非列表内的对应序号,则会报错提示,并重新回到输入关键字的界面:

    确认选择的文件

    输入 “WW” 不符合要求

    报错提示信息

    输错啦!请重新输入.GIF

    VBA代码 - Tab / Space

    效果演示看完了,那么就为您附上代码,供您慢慢检验:

    VBA 代码

    PS:若有看官觉得图片还不够清晰,无法尝试,您可以在评论区留言,我会私信回复您。若需要代码的看官比较多(比如100位),那么我会将文本代码直接以文章推送出来供大家查阅。

    【关于私信,目前可能需要看官您先发送私信给我,作为作者这边无法直接向您发信息,若您曾给我发过私信且未将对话关闭,我这边就能从历史记录中向您发送信息。】

    文末 - 谢谢您嘞,(づ ̄3 ̄)づ╭

    每一位读者的点赞、订阅、关注、收藏、留言评论都是对我的最大支持,谢谢各位帅哥美女!

    同时也希望大家多多转发与评论留言,毕竟只有更多的人认可,我才更有动力为大家发布文章,提供代码。

    再次谢谢大家!

    友情链接 - 值得一看

    1、Excel-VBA 让录入数据变得更智能——输入时提示匹配值

    2、Excel-VBA 将乱序的数据剔除空值后有序排列成一列或一行

    3、Excel-VBA 实时记录表格异动

    4、Excel-VBA “十字星”聚焦效果

  • ?

    1个案例教你学会Excel中的VBA

    成熟

    展开

    可能很多朋友不知道Excel中VBA的用途。那什么是VBA呢?

    一句话概括:在Excel中想实现什么功能,就可以用VBA语言编写一段程序去完成。

    今天通过例子带大家了解Excel中的VBA!

    软件说明:Excel 2010版本

    场景再现:表格中点击按钮,向单元格E1中输入数字 “233”,并且能够实现清除!

    第一步、打开编写VBA代码的窗口

    在Excel表格中编写VBA的窗口叫VBE编辑器,有两种打开的方法。

    在工作表标签上右键 - 查看代码按Alt+F11

    第二步、创建写VBA代码的地方

    有朋友肯定会问:“我没学会编程怎么办?”、“我都没见过代码能行吗?”;别急!我的回复是肯定的!

    在哪编写代码呢?有好几种方式,今天先学最常用的:“插入” - “模块”。新建一个模块用来存放编写的代码;记住:修改模板的名称:我的VBA模板【如下图虚线标注】

    第三步、开始写代码

    新建模板后,在右侧的空白位置就是编写代码的地方。可以执行的VBA代码,结构是这样的:

    Sub 程序名(参数)可以执行任务的代码End Sub

    因为例子中我要进行输入与清除的操作,输入Sub 程序名()然后回车,End Sub就会自动输入;如下图:

    在开始和结束语句之间输入代码,执行在单元格A1中输入数字"233"

    Range("E1") = 123

    备注:在VBA中,Range("单元格地址")来表示单元格。在单元格中输入值,直接用=值 即可(字符串两边要加双引用),如果清空则 =""。

    再编写一段清空代码:

    第四步、测试运行代码

    在编写代码时经常要测试是否正确。测试方式是把光标放在代码行的任意位置【下图中“测试按钮”的位置】,点击运行小按钮进行测试;同样清空代码也一样。

    第五步、点击按钮执行VBA代码

    在Excel中插入的图形、图片、按钮控件都可以执行VBA代码。让它们执行很简单,点击“插入” - “矩形” - “指定宏”

    只需要右键菜单中点击指定宏 - 选取编写的宏名称,选择“输入”,添加输入按钮。

    同样添加清除按钮:

    当然自己可以调整字体的颜色、字体,让其变得更加美观!

    此时,通过VBA设置的输入“233”,并可以点击清除!

    第六步、保存VBA代码

    此时的VBA代码应该是既有输入代码又有清空代码;最后需要保存为“启用宏的工作簿"类型【注意下图中虚线框标注】,VBA代码才能保存下来。

    好了!今天的分享就到这里,是不是感觉VBA也没有想象的那么难?

    赶快转发、关注吧,更多技巧尽在头条号中!

  • ?

    VBA基础--工作簿、工作表及单元格对象的常见操作

    旅途

    展开

    Sub ob()

    '工作簿对象操作

    '1--打开当前工作簿路径下,一个名为“要打开的工作簿”

    Workbooks.Open ThisWorkbook.Path & "\" & "要打开的工作簿.xlsx"

    '2--关闭工作簿,并保存修改,如果不保存修改,savechanges改为false

    Workbooks("要打开的工作簿.xlsx").Close SaveChanges:=True

    '工作表对象的操作

    '1--定义工作表对象

    Dim mysht As Worksheet '定义工作表对象

    Set mysht = ThisWorkbook.Sheets("Sheet1") '将工作表对象赋值给变量

    '2--工作表的循环

    '1)把当前工作簿的每个工作表的A1单元格填上“VBA代码集锦”

    For i = 1 To ActiveWorkbook.Worksheets.Count

    ActiveWorkbook.Worksheets(i).Cells(1, 1).Value = "VBA代码集锦"

    Next

    '2)把当前工作簿的每个工作表的A1单元格填上“VBA代码集锦”

    For Each sh In ThisWorkbook.Worksheets

    sh.Cells(1, 1).Value = "VBA代码集锦"

    Next

    '3--激活、选中、删除工作表

    ThisWorkbook.Sheets("Sheet2").Activate

    ThisWorkbook.Sheets("Sheet2").Select

    ThisWorkbook.Sheets("Sheet2").Delete

    'Range对象操作

    ThisWorkbook.Sheets("Sheet1").Select

    '1--单个单元格选中

    Range("A2").Select

    Cells(2, 1).Select '第二行第一列

    '2--连续单元格区域选中

    Range("A2:A5").Select

    Range(Cells(2, 1), Cells(5, 1)).Select

    '3--不连续单元格区域选中

    Application.Union(Range("A1:A5"), Range("C1:C5")).Select '选中这两个区域

    Range("A1:A5,A2:A7,B2:B10").Select '选中这三个区域合并后的区域

    Range("A1:A5 A3:A8").Select '选中这两个区域相交叉的区域

    Range("A4:A10", "D2:D8").Select '选中这两个区域所围成的最小的矩形区域

    '4--引用行列

    Rows(3).Select '选中第3行

    Rows("3:8").Select '选中第3-8行

    Columns(3).Select '选中第3列

    Columns("D").Select '选中第D列

    Columns("A:D").Select '选中第A-D列

    '5--复制

    ' 1)把sheet1中A1:A5的值复制到Sheet3的A1:A5

    ThisWorkbook.Sheets("Sheet3").Range("A1:A5").Value = ThisWorkbook.Sheets("Sheet1").Range("A1:A5").Value

    ' 2)将工作表 Sheet1单元格A1:A5中的公式复制到工作表 Sheet3的单元格B1:B5中,包含格式与公式

    ThisWorkbook.Sheets("Sheet1").Range("A1:A5").Copy ThisWorkbook.Sheets("Sheet3").Range("B1")

    ' 3)将工作表 Sheet1单元格A1:A5中的公式复制到工作表 Sheet3的单元格C1:C5中,只复制值

    ThisWorkbook.Sheets("Sheet1").Range("A1:A5").Copy

    ThisWorkbook.Sheets("Sheet3").Range("C1").PasteSpecial xlPasteValues

    End Sub

  • ?

    如何利用VBA控制窗口在不同的工作表间切换

    夜香

    展开

    或许你看过不同的VBA程序的运行,对于窗口的切换一定印象深刻。在程序运行时,根据不同的需求,窗口在不同的工作表间自由的切换,可以先从一个工作表取值,放到第二个工作表中,再从其他的工作表中取出参数并参与运算,运算得出结果,放到一个单独的工作表中,看的人眼花缭乱。

    这种运算是VBA所特有的。虽然在运行时会产生很多的碎片,影响时间的利用,但对于单纯的运算来讲,还是节约了时间,最主要的是提高了数据的准确性和可信度。

    在羡慕别人的同时,是否也希望自己能做出这样的程序呢?当然,对于每位学习VBA的朋友来说,这是很自然的事情,学以致用,利用自己的所学。从VBA入手点滴的积累,总会有所收获,正如你经常来我这个平台,福不唐捐,总会能碰到你急于掌握的知识一样。前些时有位朋友留言,说是帮了他大忙,但我确实不知道这位朋友的大忙是什么,也并非给这位朋友定制的,总是机缘吧。

    闲话少叙,其实这个实现起来很简单的,今天就给大家讲解一下利用VBA如何控制窗口的切换。

    我们先看下面的代码:

    11 Dim AppPATH

    12 AppPATH = ActiveWorkbook.Path

    13 ChDir AppPATH

    14 Workbooks.Open FileName:=AppPATH & "\XX.XLS" '打开文件

    15 Sheets("SHEET1").Select

    16

    17 Do While .Cells(I, 1).Value <>""

    18-90 '提取数据’

    91 I = I + 1

    92 Loop

    93

    94 ActiveWindow.Close (False) '关闭文件

    95

    96 Windows("LUMAN").Activate

    97

    98 Sheets("SHEET1").Select

    99-199 '执行操作

    200

    201 Sheets("SHEET2").Select

    201-230 '执行操作

    231

    232 MsgBox ("ok!")

    233

    程序讲解,上面的代码是一个名为LUMAN.xls的EXCEL的VBA部分代码,当执行到第11行时,程序会识别一下路径,进而打开一个在同文件夹下名字为XX的文件。

    15-93行程序会在此文件中进行操作,此时窗口的文件就是这个XX的文件,当执行到第94行时,文件XX会自动的关闭

    执行到第95行时,活动窗口又回到了LUMAN的文件,先在SHEET1中进行操作,然后到SHEET2中进行操作。

    所有操作执行完成后弹出对话框”OK”。

    上面的代码在运行的过程中用到了两个文件,并在期间切换运行,窗口的可视性非常的好,这点比其他程序要友好,如VB6的控件,GO对EXCEL的操作。这也是强大的EXCEL的功能造就的。

    当然,对于初识VBA的朋友,上面的讲解不是很解渴,不过没关系的,上面的文章中引入了很多的知识点,如:如何获得当前的地址,如何打开一个文件,如何关闭一个文件,如何把窗口切换到另外的文件等等,只要你掌握了其中之一,就有收获,而且是不小的收获。

    今日内容回向:

    1 VBA如何获得当前的地址,

    2 VBA如何打开一个文件,

    3 VBA如何关闭一个文件,

    4 VBA如何把窗口切换到另外的文件

    5 如何提高程序的可视性

    6 如果不关闭上一个窗口,是否会影响到下面的操作?

    分享成果,随喜正能量

  • ?

    Excel2010三种快速打开VBA界面的小技巧

    许沛菡

    展开

    Visual Basic for Application(简称VBA)是一种必须依赖母系程序方能使用的程序,属于VB程序语言的一个子集。我们常用的Excel电子表格除了常规的可视化命令之外,还可以通过VBA代码来操控Excel实现一些较复杂的逻辑运算及统计分析等。我们不仅可以使用代码实现数据的统计运算,还能实现图表的自动生成于刷新,以及图形的旋转与移动。在网上我们可以找到有很多大牛基于Excel的VBA,开发了一些具有特定功能的代码,以及酷炫的游戏界面等。如果您对这方面感兴趣的话,那你必须掌握的第一步操作就是打开VBA界面来认实它。

    复杂的逻辑运算使我们身心俱疲

    闲话少聊,下面就重点介绍一下从Excel窗口切换到VBA界面的操作技巧。

    方法一是通过功能区的选项卡来实现。首先在菜单栏中找到开发工具项,然后在代码功能模块中找到Visual Basic命令按钮,单击它即可快速切换到VBA界面。若菜单栏中没有开发工具这一项,需要设置自定义功能区下的主选项卡来调出该命令。

    功能区的主选项卡-开发工具

    2.方法二是通过工作表标签来实现。首先在Excel界面左下角找到工作表标签区域,右键单击任一一个工作表标签,本教程以Sheet1工作表为例,在弹出的右键菜单中选择查看代码命令,随后即可激活VBA界面。

    Excel工作表标签

    3.方法三是通过快捷键法实现。在Excel操作界面下,按下组合键Alt+F11即可快速切换到VBA界面;在VBA界面下按此组合键即可快速关闭VBA窗口。

vba打开工作表

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP