Excel VBA编程 新建和删除工作表
Excel VBA(宏)精简(三)

Excel VBA(宏)精简(三)工作表操作在文件操作中已经讲了Excel工作簿文件的打开,新建,保存和关闭了,这里再讲文件下的表格操作.1)新建与删除新建工作表,图表或宏表.新建的工作表将成为活动工作表.Sheets.Add(Before,After,Count,Type)说明: BeforeVariant类型,可选.指定工作表对象,新建的工作表将置于此工作表之前.AfterVariant类型,可选.指定工作表对象,新建的工作表将置于此工作表之后. CountVariant类型,可选.要新建的工作表的数目.默认值为1. TypeVariant类型,可选.指定工作表类型.可为以下XlSheetType常量之一:xlWorksheet,xlChart,xlExcel4MacroSheet或xlExcel4IntlMacroSheet.默认值为xlWorksheet.如果Before和After两者均省略,则新建的工作表将插入到活动工作表之前.示例:Sheets.Addafter:=Sheets(Sheets.Count)该语句可以在最后一个工作表后增加一个新表删除工作表Sheets("工作表名").Delete示例:在工作表末新建一个和删除倒数第二个表. SubMySht()Application.DisplayAlerts=False'关闭删除确认对话框Sheets.Addafter:=Sheets(Sheets.Count)Sheets(Sheets.Count-1).DeleteApplication.DisplayAlerts=True'开启确认对话框EndSub2)隐藏与显示使用工作表的visible属性来设置工作表是否隐藏或显示隐藏Sheets("sheet2").Visible=False显示Sheets("sheet2").Visible=True 3)保护与撤销保护工作表使其不至被修改.Sheets("工作表名").Protect(Password)撤销工作表保护使其被修改.Sheets("工作表名").Unprotect(Password)PasswordVariant类型,可选.为一个字符串,该字符串为工作表或工作簿指定区分大小写的密码.如果省略本参数,不用密码就可以取消对该工作表或工作簿的保护.否则,必须指定密码,通过密码来取消对该工作表或工作簿的保护.示例:Sheets("sheet1").Protect"123456"Sheets("sheet1").Unprotect"1 23456"如果要对工作进行详细保护设置,可参考ExcelVBA参考,这里仅讲简单的参数设置.单元格和区域操作Excel数据的计算归根到底还是对表的单元进行的,所以单元格和区域操作非常重要的,这一节就详细介绍这方面的内容.一,如何引用单元格和区域1)用Range属性引用单元格和单元格区域使用Range属性来引用A1引用样式中的单元格或单元格区域及进行属性更改和赋值.如例句:Sheets("Sheet1").Range("A1:D5").Font.Bold=TrueSheets("Sheet1").Range("A1:D5").Value=10000Range对象既可表单个单元格,也可表单元格区域.下面说明Range对象最常用方法.引用含义Range("A1")单元格A1Range("A1:B5")从单元格A1到单元格B5的区域Range("C5:D9,G9:H16")多块选定区域Range("A:A")A列Range("1:1")第一行Range("1:5")从第一行到第五行的区域Range("1:1,3:3,8:8")第1,3和8行Range("A:C")从A列到C列的区域Range("A:A,C:C,F:F")A,C和F列Range("单元格区域名0")命名的单元格区域2)用Cells属性引用单元格可用Cells属性通过行列编号来引用单个单元格.下例中Cells(6,1)返回Sheet1上的单元格A6,然后将Value属性设置为10.如:Worksheets("Sheet1").Cells(6,1).Value=10因为可用变量替代行列编号,所以Cells属性非常适合单元格区域中循环且速度很快.如下例所示:SubCC()DimCounterAsIntegerForCounter=1To20Worksheets("S heet1").Cells(Counter,3).Value=CounterNextCounterEndSub3)用Rows或Columns属性引用行列可用Rows属性或Columns属性来处理整行或整列.下例中,用Rows(1)返回Sheet1上的第一行,然后将单元格区域的Font对象的Bold属性设置为True.如:Worksheets("Sheet1").Rows(1).Font.Bold=True下表举例说明了使用Rows和Columns属性的一些行和列的引用.引用含义Rows(1)第一行Rows工作表上所有的行Columns(1)第一列Columns("A")第一列Columns工作表上所有的列4)用Union方法合并区域后引用若要同时处理若干行或列及区域,请创建一个对象变量并使用Union方法,将对多个区域组合起来.下例将活动工作簿中第一张工作表上的第一行,第三行和第五行的字体设置为加粗.SubSeveralRows()Worksheets("Sheet1").ActivateDimmyUnionAsRangeSetmyUnion=Union(Rows(1),Rows(3),Rows(5))myUnion.Fon t.Bold=TrueEndSub5)用括号[]引用单元格和区域可用方括号将A1引用样式或命名区域括起来,作为Range属性的快捷方式.这样就不必键入单词"Range"或使用引号,如下例所示:Worksheets("Sheet1").[A1:B5].ClearContents[MyRange].Value= 306)用Offset相对其他单元格来引用单元格处理相对于另一个单元格的某一单元格的常用方法是使用Offset属性.下例中,将位于活动工作表上活动单元格下一行和右边三列的单元格的内容设置为双下划线格式.如:ActiveCell.Offset(1,3).Font.Underline=xlDouble7)用Selection属性引用活动区域Select方法激活工作表和工作表上的对象;而Selection属性返回代表活动工作簿中活动工作表上的当前选定区域的对象.在成功使用Selection属性之前,必须先激活工作簿,并激活或选定工作表,然后用Select方法选定单元格区域(或其他对象).宏录制器经常创建使用Select方法和Selection属性的宏.下0Sub过程是用宏录制器创建的,该过程演示了Select方法和Selection属性在一起使用的方法.SubMacro1()Sheets("Sheet1").SelectRange("A1").SelectActiveCell.FormulaR1C1="Name"Range("B1").SelectActiveCell.FormulaR1C1="Address"Range("A1:B1").SelectSelection.Font.Bold=TrueEndSub8)区域中循环引用单元格方法使用VBA时,经常需要对某一单元格区域内的每个单元格运行同一段语句.为达到这一目的,可组合循环语句和一个或多个方法来标识每个单元格,一次针对一个单元格,并执行该操作.8.1)For...Next循环语句与Cells属性配合使用使用Cells属性时,可用循环计数器(或其他变量或表达式)来替代单元格索引编号.下例中变量counter代替行号.此过程在单元格区域C1:C20中循环,将绝对值小于0.01的单元都置为0.SubRoundToZero1()ForCounter=1To20IfAbs(Cells(counter,3).value)<0.01ThenCells(counter,3)=0 NextEndSub8.2)ForEach...Next循环语句和Range属性配合使用示例如下:SubRoundToZero2()ForEachcInWorksheets("Sheet1").Range("A 1:D10").CellsIfAbs(c.Value)<0.01Thenc.Value=0NextEndSub二,如何处理单元格和区域1处理三维区域如果要处理若干工作表上相同位置的单元格区域,可用Array函数选定两张或多张工作表.下例设置三维单元格区域的边框格式.SubFormatSheets()Sheets(Array("Sheet2","Sheet3","Sheet5")). SelectRange("A1:H1").SelectSelection.Borders(xlBottom).LineStyle =xlDoubleEndSub2处理活动单元格ActiveCell属性返回代表活动单元格的Range对象.可对活动单元格应用Range对象的任何属性和方法,如下例所示.SubSetValue()Worksheets("Sheet1").ActivateActiveCell.Value=35EndSub注意只有活动单元格所在的工作表处于活动状态时,才能处理该活动单元格.3选择活动单元格周围的单元格CurrentRegion属性返回由空白行和空白列所包围的单元格区域.下例中,选定区域扩充到与活动单元格相邻的包含数据的单元格中,然后用"货币"样式设置该区域的格式.SubRegion()Worksheets("Sheet1").ActivateActiveCell.CurrentRe gion.SelectSelection.Style="Currency"EndSub4单元格和区域赋值用赋值号=赋值,如给A1赋值为10:Range(A1).Value=10(由于Value是默认属性,所以可以直接省略)区域赋值,如Range(A1:D5)=105单元格和区域赋予公式进行计算把公式字符串赋予给单元格或区域的Formula属性,如下例:注意一点是公式字符串中要有开头的等号=.SubEnterFormula()Worksheets("Sheet1").Range("D6").Formula= "=SUM(D2:D5)"EndSub三,单元格和区域的定位1)使用单元格的End属性来定位边界如:数据区域的最下行的确定:Sheets(1).cells(65536,1).End(xlup).Row数据区域的最右列的确定:Sheets(1).cells(1,1).End(xltoright).Column选定包含单元格"B4"的区域在B列中顶端的单元格:Range("B4").End(xlUp).Select选定包含单元格"B4"的区域在第4行中最右端的单元格:Range("B4").End(xlToRight).Select将选定区域从单元格"B4"延伸至第四行最后一个包含数据的单元格:Range("B4",Range("B4").End(xlToRight)).Select2)善用已用区域UsedRange对象来获得区域范围如:需要获得先前表格已用区域的最右下角单元格位置SubLoc()temp=[a1]:[a1]=1'使用A1单元格,保证已用区域从A1开始irow=edRange.Rows.Count'右下单元格行icol=edRange.Columns.Count'右下单元格列[a1]=temp'还原A1的值Cells(irow,icol).Select'选中右下角单元格Endsub四,单元格和区域的保护与锁定1)工作表选择改变事件过程中保护,如下:不许可用户选择及改动保护单元格区域,示例中保护B1:B10PrivateSubWorksheet_SelectionChange(ByValTargetAsRang e)DimrngAsRangeSetrng=Range("b1:b10")IfIntersect(Target,rng)I sNothingThenExitSub'选择单元不在保护区内就退出MsgBox"不可以选取单元格!"&Target.Address'选择单元在保护区内就改变选择ActiveSheet.Range("a1").SelectEndSub2)通过行列的隐藏来保护本示例隐藏工作表"Sheet1"的第5行和C列SubSetHide() WithWorksheets("Sheet1")'使用With…EndWith语句块,提高效率.Unprotect'撤销保护,如果原先未保护则不需该句.Rows(5).Hidden=True'隐藏第5行.Columns("C").Hidden=True'隐藏C列.Protect'启动保护,如果原先未保护则不需该句EndwithEndSub3)通过锁定区域来保护,可限定未锁定区域内输入SubSetLock()ActiveSheet.UnprotectCells.Locked=True'锁定全表Range("a1:b10").Locked=false'解锁区域A1:B10,限定该区域为可输入区ActiveSheet.ProtectEndSub第四节图表的操作Excel让人喜爱的原因就是它有强大得计算功能和数图相关联的数据作图功能.本节就介绍下VBA代码作图方面内容.通过代码作重复的图,可以大大提高效率,比如我的作品GeoPlot().Excel图的代码绘制,最好是学习录制的宏来分析VBA代码的作用,最后优化而成通用程序块.一.新建及类型1)设置一个对象等于新增图表对象就建立好了一个新图1.1)新图赋值给对象变量Setmychart=Sheets(1).ChartObjects.Add(ChrLeft,ChrTop,ChrWidth ,ChrHeight)说明:增加一个嵌入图表,其左上角的位置坐标为(ChrLeft,ChrTop),长宽为ChrWidth×ChrHeight,单位为磅.1磅为1/72英寸和0.035厘米,字体大小通常用磅数量度.1.2)直接增加一个图对象到图对象集ChartsCharts.Add2)图的类型可以更改Chart对象的属性ChartType来实现2.1)图表对象变量的使用mychart.Chart.ChartType=xlXYScatterLines'散点图折线类型2.2)未设置对象变量的图它的类型更改需要在增加它后,连续操作让它处于激活状态(ActiveChart),这样可通过当前活动图ActiveChart来使用.如:ActiveChart.ChartType=xlPie'饼图3)图表有两大类,一是嵌入工作表上的图,另一类是作为新工作表图,其设置如下:3.1)嵌入工作表上的图ActiveChart.LocationWhere:=xlLocationAsObject,Name:="Sheet1"或如1.1生成新图时就定义为生成嵌入图ChartObjects.Add3.2)新工作表图ActiveChart.LocationWhere:=xlLocationAsNewSheet或用图表对象变量属性更改mychart.locationwhere:=xlLocationAsNewSheet二.设置图表的数据一般是使用Excel表格上数据,所以可以通过设置Chart图表对象的数据来源属性来获得作图需要的数据.如:ActiveChart.SetSourceDateSource:=Sheets("Sheet1").Range("A 1:B6"),PlotBy:=xlColumns这里的PlotBy:=xlColumns表示按列绘制数据;也可以按行绘制,其参数为PlotBy:=xlRows.另外一种数据设置是对图的横,纵坐标数据分别赋值.如:mychart.chart.SeriesCollection.NewSeries'增加一个系列数据mychart.chart.SeriesCollection(1).XValues=Array(45,100)'横坐标数据组或单元对象mychart.chart.SeriesCollection(1).Values=Array(50,180)'纵坐标数据组或单元对象三.图表格式设置对于图的格式设置,一般是录制一个宏,再删除不需要的语句,这样是开发者最省事的方法.在本节的示例中有详细的格式设置,可以更改坐标轴的名0,大小范围,刻度大小等.对不清楚的图的类型名0,格式参数,我们都可以通过录制宏来了解学习.时刻记住,录制宏来分析代码,是最好的学习方法.四.散点图增加一个系列和增加文字标签1)用图表的系列集合对象的方法NewSeries,就可以增加图的系列,然后再对新系列进行设置,如下:mychart.chart.SeriesCollection.NewSeries'增加一个系列数据mychart.chart.SeriesCollection(1).XValues=Array(45,100)'横坐标数据组或单元对象mychart.chart.SeriesCollection(1).Values=Array(50,180)'纵坐标数据组或单元对象2)对于散点图,我们可以增加文字标签于图上,方法如下:增加一个新的系列,不过数据就一点,不显示数据点,而仅显示它的数据标签即可.如下示例.Withmychart.chart.SeriesCollection(2).MarkerStyle=xlNone'不显示点标记.Points(1).HasDataLabel=True'数据标记及显示文字标签.Points(1).DataLabel.Text="标签文字"'标签文字.DataLabels.Position=xlLabelPositionCenter'位置风格,居中EndWith五.实例1)生成一个散点嵌入图于工作表窗口中心,绘制一条直线(45,50)―(100,180),在第一点显示文字标签"Test",此外还加一个点(80,100).代码和详细注释如下:SubDrawChart()'*******************************图表对象的定义和生成***********************************'定义对象变量,以便设置它为图表(chart)对象及图位置大小变量DimmychartAsObject,mysheetAsObjectDimChrLeftAsLong,ChrTopAsLong,ChrWidthAsLong,ChrHeightAsLon gOnErrorResumeNextApplication.ScreenUpdating=FalseChrWidth=250:ChrHeight=250ChrLeft=Abs(Windows().Width-ChrWidth)/2 ChrTop=Abs(Windows().Height-ChrHeight)/2'计算图表在窗口中心坐标Setmychart=Sheets(1).ChartObjects.Add(ChrLeft,ChrTop,ChrWidth ,ChrHeight)Withmychart.Chart.ChartType=xlXYScatterLines'散点折线图类型.SeriesCollection.NewSeries'增加一次投点,画条直线.SeriesCollection(1).XValues=Array(45,100).SeriesCollection(1).Values=Array(50,180).SeriesCollection(1).Points(1).HasDataLabel=True'点1是否显示数据标签.SeriesCollection(1).Points(1).DataLabel.Text="Test"'点1的标签文字.SeriesCollection.NewSeries'增加一次投点,就投个点(80,100).SeriesCollection(2).XValues=80.SeriesCollection(2).Values=100EndWith'*******************************图表风格定义***********************************Withmychart.Chart.ChartArea.Font.Size=10'图表字符的大小.HasLegend=False'图是否显示图例.Axes(xlCategory,xlPrimary).HasTitle=True'X轴是否有坐标名.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="X".Axes(xlValue,xlPrimary).HasTitle=True.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Y"'Y轴坐标名"Y".PlotArea.Interior.ColorIndex=xlNone'定义投图区为透明EndWithWithmychart.Chart.Axes(xlCategory).MinimumScale=0'定义X坐标轴最小值.MaximumScale=200'定义X坐标轴最大值.MinorUnit=10'定义次刻度线单位.MajorUnit=50'定义主刻度线单位.CrossesAt=0'X轴交汇点设为0.MajorTickMark=xlInside'主刻度线方向朝内.MinorTickMark=xlInside'次刻度线方向朝内.HasMajorGridlines=False'是否显示主网格线.HasMinorGridlines=False'是否显示次网格线EndWithWithmychart.Chart.Axes(xlValue).MinimumScale=0'定义y坐标轴最小值.MaximumScale=200'定义y坐标轴最大值.MinorUnit=10'定义次刻度线单位.MajorUnit=50'定义主刻度线单位.CrossesAt=0'Y轴交汇点设为0.MajorTickMark=xlInside'主刻度线方向朝内.MinorTickMark=xlInside'次刻度线方向朝内.HasMajorGridlines=False'是否显示主网格线.HasMinorGridlines=False'是否显示次网格线EndWithSetmychart=Nothing'删除图表对象变量Application.ScreenUpdating=True'恢复屏幕刷新EndSub2)根据工作表一的A1:B10数据生成柱状图嵌入表一,位置为数据右下角位置. SubPic2()OnErrorResumeNextApplication.ScreenUpdating=FalseCharts.AddActiveChart.ChartType=xlColumnClusteredActiveChart.SetSourceDataSource:=Sheets("Sheet1").Range("A1:B 10"),PlotBy:=xlColumnsActiveChart.LocationWhere:=xlLocationAsObject,Name:="Sheet1" ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Left=ActiveSheet. Cells(11,3).Left'定位于单元格(10,2)右下角ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Top=ActiveSheet. Cells(11,3).TopApplication.ScreenUpdating=TrueEndSub。
VBA 中的工作表和工作簿操作方法

VBA 中的工作表和工作簿操作方法在 Excel 中,VBA(Visual Basic for Applications)是一种编程语言,可以用于自动化执行各种操作。
在VBA 中,工作表和工作簿是最常见的操作对象之一。
本文将介绍VBA 中的工作表和工作簿的基本操作方法,帮助您更好地利用 VBA 来进行数据分析和处理。
一、工作表的操作方法1. 打开工作表在 VBA 中,打开工作表的语法是:```Worksheets("工作表名称").Activate```其中,"工作表名称" 是您要打开的工作表的名称。
通过这种方式,您可以切换到特定的工作表。
2. 创建新工作表要在 VBA 中创建新的工作表,可以使用下面的语法:```Worksheets.Add```这将在活动工作簿中创建一个新的工作表。
您可以根据需要使用 VBA 代码自动创建新的工作表。
3. 删除工作表要删除工作表,可以使用下面的语法:```Worksheets("工作表名称").Delete```这将删除指定名称的工作表。
请注意,删除工作表操作是不可撤销的,因此在执行删除操作之前要确保操作的准确性。
4. 重命名工作表要重命名工作表,可以使用下面的语法:```Worksheets("旧工作表名称").Name = "新工作表名称"```这将把旧工作表名称修改为新的工作表名称。
通过这种方式,您可以方便地更改工作表的名称。
5. 循环访问工作表在 VBA 中,您可以使用循环语句来访问工作簿中的多个工作表。
以下是一个示例,演示如何使用 For Each 循环访问所有工作表并执行相同的操作:```For Each ws In Worksheets' 您的代码逻辑Next ws```通过这种方式,您可以逐个访问工作簿中的每个工作表,并在代码逻辑中执行相应的操作。
用VBA打开、关闭、新建、保存和删除Excel工作簿VBA实例教程

用VBA打开、关闭、新建、保存和删除Excel工作簿VBA实例教程除非注明,文章均为战战如疯原创,转载请保留链接: /cat1/94.html,VBA交流群273624828。
今天来讲一下工作簿的基本操作,包括如何打开一个Excel工作簿,如果新建及保存一个Excel工作簿。
工作簿的打开用的是Open方法,关闭用close方法,新建用的是Add方法,保存用的是Save方法,另存为用的是SaveAs方法,删除用的是Kill方法。
具体看实例。
首先看怎么利用VBA来新建一个Excel工作簿。
在桌面上新建一个工作簿,命名为原文件,现在我们就要在原文件中通过VBA代码在桌面上新建一个叫做"新文件.xlsx“的工作簿。
看代码Sub test()Dim wb As Workbook '定义wb为workbook对象On Error Resume Next '如有错误则跳过Kill ThisWorkbook.Path & "\新文件.xlsx" '删除相同路径下同名文件Set wb = Workbooks.Add '新建一个工作簿wb.Password = "123456" '设置查看密码为123456wb.SaveAs ThisWorkbook.Path & "\新文件.xlsx" '保存,需完整路径wb.Close False '关闭End Sub上面的代码中先利用Kill方法将相同路径下的同名文件删除,防止保存时报告存在同名文件的错误,但是如果本来没有同名文件的话程序又会报告找不到该文件,所以这里又用到了On Error Resume Next,这条语句是处理错误时常用的,它告诉程序忽略下一个错误,继续往后执行。
然后程序中用Add方法新建了一个工作簿,并且将该工作簿的PassWord属性设为了”123456“,即打开工作簿的密码。
VBA处理Excel中的多工作簿和多工作表

VBA处理Excel中的多工作簿和多工作表VBA(Visual Basic for Applications)是一种编程语言,可以用来处理Excel中的多个工作簿和工作表。
它提供了丰富的功能,可以自动进行数据处理、格式调整、图表生成等任务。
在本文中,我将详细介绍如何使用VBA处理Excel中的多个工作簿和工作表。
首先,我们先了解一下VBA中的对象和方法。
在Excel中,有几个重要的对象需要我们熟悉:Application对象、Workbook对象和Worksheet对象。
Application对象表示Excel应用程序本身,Workbook对象表示一个Excel工作簿,而Worksheet对象表示一个工作簿中的一个工作表。
我们可以使用这些对象的方法来操作和处理Excel中的数据。
接下来,我将分别介绍如何处理多个工作簿和多个工作表的情况。
处理多个工作簿:1. 打开工作簿:使用Workbooks.Open方法可以打开一个或多个工作簿。
例如,可以使用以下代码打开一个名为"Book1.xlsx"的工作簿:```Workbooks.Open("C:\Users\UserName\Documents\Book1.xlsx")```2. 复制数据:使用Workbook对象的Copy方法可以将一个工作簿的数据复制到另一个工作簿。
例如,可以使用以下代码将"Book1.xlsx"中的数据复制到"Book2.xlsx"中的Sheet1:Workbooks("Book1.xlsx").Sheets("Sheet1").UsedRange.CopyWorkbooks("Book2.xlsx").Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlPasteValues```3. 保存工作簿:使用Workbook对象的Save方法可以保存工作簿。
VBA中常用的表格操作技巧总结

VBA中常用的表格操作技巧总结VBA(Visual Basic for Applications)是一种用于在 Microsoft Office 应用程序中编写宏的编程语言。
在 Excel 中使用 VBA 可以快速、高效地操作工作表和数据。
本文将总结一些在 VBA 中常用的表格操作技巧,以帮助读者更好地利用 VBA 来处理 Excel 表格数据。
一、表格操作前的准备在进行任何表格操作之前,首先需要确认要操作的表格所在的工作簿和工作表。
可以使用以下 VBA 代码获取当前的工作簿和工作表:```Dim wb As WorkbookDim ws As WorksheetSet wb = ThisWorkbook '获取当前工作簿Set ws = wb.Worksheets("Sheet1") '获取名为 "Sheet1" 的工作表```二、表格的创建和删除在 VBA 中,可以使用以下代码创建新的表格:```Dim rng As RangeSet rng = ws.Range("A1:C5") '设置新表格的范围ws.ListObjects.Add(xlSrcRange, rng, xlYes).Name = "Table1" '创建名为 "Table1" 的表格```删除表格可以使用以下代码:```ws.ListObjects("Table1").Delete '删除名为 "Table1" 的表格```三、表格的排序VBA 提供了几种排序表格数据的方法,例如按照某一列升序或降序排序。
以下代码演示了对表格的第一列进行升序排序:```ws.ListObjects("Table1").Sort.SortFields.Clear '清除之前的排序设置ws.ListObjects("Table1").Sort.SortFields.AddKey:=ws.Range("Table1[[#All],[Column1]]"), SortOn:=xlSortOnValues, Order:=xlAscending '按照第一列进行升序排序ws.ListObjects("Table1").Sort.Apply '应用排序设置```四、筛选和过滤VBA 可以通过设定筛选条件来筛选和过滤表格数据。
ExcelVBA解读(73):添加和删除工作表——Add方法和Delete方法

ExcelVBA解读(73):添加和删除工作表——Add方法和Delete方法一般情况下,开启工作簿时,Excel默认自带3个工作表。
如果想要更多的工作表,可以单击工作表界面底部工作表标签右侧的“插入工作表”标签或者按Alt F11组合键快速插入一个新工作表。
也可以在工作表标签中单击右键,在弹出的菜单中单击“插入”,选择插入工作表的类型后插入一个新工作表。
下面是单击“插入工作表”标签后,Excel录制的代码:Sub Macro1()'' Macro1 Macro'由完美Excel创建'Sheets.Add After:=Sheets(Sheets.Count)End Sub在我的工作簿中,Excel插入了一个名为“Sheet4”的工作表,并且该工作表位于所有工作表之后,这是由参数After指定的。
下面是先选取工作表Sheet1,然后单击右键,在弹出的菜单中单击“插入”后插入一个新工作表的操作,由Excel录制的代码:Sub Macro2()'' Macro2 Macro'由完美Excel创建'Sheets('Sheet1').SelectSheets.AddEnd SubExcel将插入的工作表默认放置在当前工作表之前。
从上面的代码可以看出,Excel VBA使用Add方法添加新工作表。
Add方法Add方法创建一个新工作表并使其成为活动工作表,其语法如下:工作表对象.Add(Before,After,Count,Type)说明:•所有参数均可选。
•参数Before指定一个工作表,新添加的工作表放置在该工作表之前。
•参数After指定一个工作表,新添加的工作表放置在该工作表之后。
•参数Before和参数After只能二选一。
•参数Count指定要添加的工作表数量,默认值为1。
•参数 Type指定添加的工作表类型,可以是下列xlSheetType常量之一:xlWorksheet(工作表)、xlChart(图表工作表)、xlExcel4MacroSheet(宏表)、xlExcel4IntlMacroSheet。
VBAExcel工作表代码总结

工作表增加工作表1、添加工作表 Sheets.Add2、在最后工作表后添加新工作表Sheets.Add after:=Sheets(Sheets.Count)3、在第1工作表前添加新工作表 Sheets.Add before:=Sheets(1)4、在第五个工作表之后添加三个Worksheets.Add after:=Worksheets(5), Count:=3删除工作表5、删除工作表1 Sheets(“sheet1”).Delete或 Sheets(1).Delete6、删除当前工作表 ActiveWindow.Selected Sheets.Delete或ActiveSheet.Delete7、删除工作表1 Sheets(“sheet1”).Delete或 Sheets(1).Delete显示隐藏工作表8、隐藏SHEET1这张工作表sheets("sheet1").Visible=False9、显示SHEET1这张工作表sheets("sheet1").Visible=True10、深度隐藏工作表 Sheet1.Visible = 211、显示工作表 Sheet1.Visible = -1工作表名字/命名12、获取工作表i的名称 ActiveWorkbook.Sheets(i).Name13、当前工作表命名 = "www"14、Sheets(Sheet1).Name= “Sum” '将Sheet1命名为Sum15、返回活动工作表的名称 16、返回活动窗口的标题 Application.ActiveWindow.Caption17、返回活动工作簿的名称 关闭/保存工作表18、将该表格保存到C:\test.xls 目录 ExcelSheet.SaveAs "C:\TEST.XLS"19、关闭同时保存 Workbooks("filename.xls").Close savechanges:=True20、关闭同时不保存 Workbooks("filename.xls").Close savechanges:=False21、不保存直接关闭当前的工作簿Workbooks("BOOK1.XLS").Close SaveChanges:=False22、不保存直接关闭EXCEL窗口(关闭所有的工作簿)的VBA语句Application.DisplayAlerts = False Application.Quit选择工作表23、同时选择工作表1和工作表2 Worksheets(Array(“sheet1”,”sheet2”)).Select24、选定下(上)一个工作表sheets(activesheet.index-1).select sheets(activesheet.index+1).select移动工作表25、ActiveSheet.Move After:=ActiveWorkbook. _Sheets(ActiveWorkbook.Sheets.Count) '将当前工作表移至工作表的最后文件(夹)操作26、建立文件夹的方法 MkDir "D:\Music"27、打开文件夹的方法ActiveWorkbook.FollowHyperlink Address:="D:\Music",NewWindow:=True28、删除一个文件 kill "c:\1.txt"29、退出EXCEL Application.Quit保护工作表30、保护工作表使其不至被修改。
VBA文件操作指南

VBA文件操作指南在日常办公和开发工作中,我们经常需要对各种文件进行操作,例如创建、打开、保存、读取、修改、删除等操作。
VBA (Visual Basic for Applications) 是一种常用的宏语言,它可以与 Microsoft Office 应用程序集成,方便我们对文件进行各种操作。
本篇文章将为您介绍一些常见的 VBA 文件操作技巧,帮助您更高效地处理文件。
1. 创建新文件在 VBA 中,要创建一个新的文件,可以使用 CreateObject 函数以及相应的应用程序对象。
例如,要创建一个新的 Excel 文件,我们可以使用以下代码:```vbaDim ExcelApp As ObjectDim NewWorkbook As ObjectSet ExcelApp = CreateObject("Excel.Application")Set NewWorkbook = ExcelApp.Workbooks.Add```这段代码首先创建了一个 Excel 应用程序对象 ExcelApp,然后通过 Workbooks.Add 方法创建了一个新的工作簿对象NewWorkbook。
2. 打开现有文件通过 VBA,我们可以打开现有的文件进行进一步的操作。
例如,要打开一个 Excel 文件,我们可以使用以下代码:```vbaDim ExcelApp As ObjectDim Workbook As ObjectSet ExcelApp = CreateObject("Excel.Application")Set Workbook =ExcelApp.Workbooks.Open("C:\path\to\file.xlsx")```在这个示例中,我们先创建了一个 Excel 应用程序对象ExcelApp,然后使用 Workbooks.Open 方法打开了指定路径下的名为 file.xlsx 的 Excel 文件,并将其赋值给 Workbook 变量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Excel VBA编程新建和删除工作表
当用户制作的报表中工作表的数量超过3个,可以为工作簿新建工作表。
另外,对于工作簿中不需要的工作表,可以将其删除,以方便用户查看其他工作表中的数据。
1.新建工作表
无论工作簿中工作表的数量有多少个,为了在这些工作表的最后添加一个工作表,可以使用Add方法来实现,其代码如下:
Sub 新建工作表()
Sheets.Add After:=Sheets(Sheets.Count)
End Sub
在上面的代码中使用Sheets.Count 属性进行返回一个Long值,它代表集合中对象的数量。
语法:表达式.Count
另外,为了在选择的工作表之前插入一个工作表,可以输入以下代码。
然后,在运行程序之前,首先选择指定的工作表,当运行之后,即可在该工作表之前添加一个工作表。
Sub 新建()
Sheets.Add
End Sub
2.删除工作表
用户可以对不需要的工作表,进行删除。
在VBA中,用户可以使用Sheets.Delete方法删除工作表。
语法:表达式.Delete
其中,表达式为一个代表Sheets对象的变量。
例如,输入以下代码,即可删除被选择的工作表。
Sub 删除()
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.delete
Application.DisplayAlerts = True
End Sub
在上面的代码中,使用了Application.DisplayAlerts属性,该属性表示如果宏运行时Microsoft Excel显示特定的警告和消息,则该属性值为True。
语法:表达式.DisplayAlerts
在该属性的使用过程中,应注意以下几点内容:
●该属性的默认值为True。
但如果用户不想在宏运行时被无穷无尽的提示和警告消息所困扰,可
以将本属性设置为False;这样每次出现需要用户应答的消息时,Microsoft Excel将选择默认应
答。
●如果将该属性设置为False,则在代码运行结束后,Micorosoft Excel将该属性设置为True。
另外,当工作簿中的工作表只有第一个起作用时,用户可以将其他的工作表一次性进行删除。
例如,输入以下代码,即可完成删除工作簿中的所有工作表(只保留第一个)。
Sub 删除工作表()
Dim sh As Worksheet, s As New Collection, t, has As Boolean
'将选定工作表的名称添加到集合s
For Each sh In ActiveWindow.SelectedSheets
s.Add
Next
Application.DisplayAlerts = False
For Each sh In Sheets
has = True
For Each t In s
If = t Then has = False: Exit For Next
If has = True Then sh.delete
Next
Application.DisplayAlerts = True
End Sub。