VBA自已学习笔记.doc_第1页
VBA自已学习笔记.doc_第2页
VBA自已学习笔记.doc_第3页
VBA自已学习笔记.doc_第4页
VBA自已学习笔记.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MsgBox Workbooks.Count这是统计打开工作薄的数量Workbooks后再输入个点(.),就会出现一个下拉框,框中的带小手指的就是工作薄集合的属性,带飞行的小书本的是方法,比如:新建(ADD),关闭(CLOSE),打开(OPEN)就是方法例如:Workbooks.Open Filename:=c:2.xls打开指定的工作簿Workbooks(2.XLS).Activate把打开的某个工作设为当前工作薄一次新建多个工作薄:For i = 10 To 13 Workbooks.Add ActiveWorkbook.SaveAs Filename:=c: & i & .xls NextWorkbooks.close是关闭所有打开的工作薄Workbooks(123,XLS).close是关闭指定的工作薄二、在VBA中,单元格常用的表示方法有两种,学会一块多块区域的选择命令,赋值,单元格字体边框的属性。一种是RANGE如A1在VBA的表示方法是Range(a1)A1:A100的表法方法是: Range(A1:A100)和以前一样,大家先在工作表中插入一个矩形作为执行宏的按纽在按纽上单击右键,单击指定宏,再单击新建,在VBE窗口中的代码窗口会出现Sub 矩形1_单击()End Sub在两句中间输入Range(a1)=1000Range可以代表一个单元格区域,也可以代表一个单元格,通过Range(a1)=1000 也可以看出,它的用法是Range后括号中带上A1 就可以表示我们平时在工作表用到的中的A1单元格了,它在表示一个连续区域时是这个的,Range(区域的左上角单元格:区域的右下角单元格)请把刚才的代码再加上一句:Range(a1:a10)=1000 对,如果是不连续的单元格多个区域,它是这样表示的:Range(单元格区域1,单元格区域2.)把刚才的代码替换为:Range(a1:a10,c1:c10,e1:e10) = 100 再试试 A1是Range(A1)的简写.二者在用法上没有什么区别,但在输入时有点不同,如当你输入A1后加点时,后面不会出现属性和方法列表,而输入Range(A1)加点后则会出现属性列表供你选取Application.Intersect(Range(a1:a10), Range(a3:c4).Select这一句的意思是选中区域A1:A10 和 A3:C4重叠的区域,即两个区域共有的区域,此名代码运行的结果是选中区域A3:A4注意Intersect 方法是一个非常实用的一个方法,比如我们在动态选取工作表Sheet1A列中已存在数据的区域时,就会用到它。在介绍这个用法前还要介绍一下另一个工作表中非常实用的属性:Usedrange你可以选试着运行一下:Activecell.usedrange.Select 2003不支持可用这个ActiveSheet.UsedRange.SelectSheet1.UsedRange.Select行Activecell.usedrange.Select你会发现,在当前工作表中的所有用过的区域全被选中了。你明白了吗,其实usedrange就是工作表中所有已存在内容的矩形区域,为什么不说是存在内容的单元格呢?原因是比如你在一个空工作表中的B3和C5单元格任意输入一个数值,运行Activecell.usedrange.Select后选取的不只是B3和C5单元格,而是B3:C5单元格区域我们平时在程序中会看到 Activesheet worksheets(sheet1) sheet1 sheets(sheet1) Sheets(1) 顺便说一说他们的区别 Activesheet是指当前活动工作表,即你正在操作的工作表 worksheets(sheet1)等同于sheets(sheet1)是特指工作表Sheet1,注意这时的Sheet1是工作表的名子,就如同员工工资表一样是工作表的名称,而Sheet1和Sheets(1),不管你如何命名,Sheet1和Sheets(1)就只代表第一个工作表,Sheet2和Sheets(2)代表第二个工作表。 下面以一个实例说明如何动态选取一个区域:要求:无论工作表中所有单元格如何填入,运行程序后要选取A列已用所有区域:代码如下:Intersect(Range(a:a), Sheets(sheet1).UsedRange).SelectRange(a:a)是A列,Sheets(sheet1).UsedRange是工作表sheet1已使用的所有单元格区域,用Intersect求二者的共有区域,结果就是我们所要的A列已用所有区域其实这中间有个规律:如果你输入的是非数字的字符,即使你删除了,也被当做已用区域(已用过的区域),而当你删除的是你输入的数字时则不受这个限制)sheet1.Range(a2).Range(a3).Select这种表示方式是对工作表区域重新进行定位坐标,原来默认是以A1为坐标右上端点,而Range(a2).Range(a3)则重新新定义以A2为右上角顶点坐标,在这种坐标系下的A3当然是A4了,再如:Range(B2).Range(a3)的结果是以B2为右上端点,这种坐标下结果就为B4了sheet1.rows(2).range(a3).select是以第二行最右端点为新坐标顶点说了这么多还没有介绍到另一个单元格的表示方式:CellSCellS(行数,列数)如 A1:Cells(1,1) 用range表示: range(a1)b2: cells(2,2) 用range表示: range(b2)c100: cells(100,3) 用range表示: range(c100)cells也是一个常用的单元格表示方法,它和Range在表示单元格时有什么共同点和区别呢?Range可以表示单元格,也可以表示单元格区域cells也是这样,但除了cells作为一外集合对象外其他只能表示一个独立的单元格,如:Cells.select 选取工作表所有单元格 Cells(2,2).select 选取B2单元格所以在表示单元格区域时,除表示全部单元格外,其他均需用Range来表示如:range(a1:b20).MsgBox Range(a1).CurrentRegion.Rows.Count 用对话框的形式显示A列中所用区域的最后一个单元格所在的行数offset 是单元格或单元格区域的移动 offset (移动行数,移动列数) resize 是单元格或单元格区域的行数和列数重新设置后范围大小 resize (变动后行数,变动后列数) 例: Range(A1:B2).Select 选取A1:B2区域 Range(A1:B2).Offset(3, 0).Select A1:B2区域向下移动三行,结果是选中A4:B5区域 Range(A1:B2).Resize(2, 4).Select A1:B2区域重新设置,行数为2,列数为4, 结果为选取A1:D2 Range(A1:B2).Resize(Range(A1:B2).Rows.Count + 2, Range(A1:B2).Columns.Count + 4).Select A1:B2区域重新设置,在原来行数的基础上加2行,在原来列数的基础上加4列,运行结果为:结果是选取A1:F4 Range(A65536).End(xlUp).Select A列最后一个单元格可以用 是已用区域复制与粘贴 单个的与区域的都可以用Range(A1).CopyRange(n5).PasteSpecial 单个单元格的复制与粘贴Range(b:b).CopyRange(g:g).PasteSpecial 单列的复制与粘贴 或着下列方法Range(C:C).Value = Range(D:D).Value 单列的复制与粘贴新建工作表,并将其插入到活动工作簿中最后一个工作表之前。ActiveWorkbook.Sheets.Add Before:=Worksheets(Worksheets.Count)复制另外表上的区域数据到 新建在当前活动工作簿中最后一个工作表之前的工作表的规定区域中。当然也可以指定粘贴的工作表名,Sheet1.Range(A1:a10).CopyActiveWorkbook.Sheets.Add Before:=Worksheets(Worksheets.Count)ActiveSheet.Range(n1:n10).PasteSpecial合并单元格取值左上角单元格的值Range(A1:a10).Merge (Across)选择当前活动的工作簿: ThisWorkbook.Activate 如果选择其他工作簿,注意该工作簿一定是打开的,并且不要忘记加上后缀“.xls” ,例如: Windows(Totol.xls).Activate 选择一个工作表: Sheets(Balance).Activate. 选择单元格: Range(A1).Select 选择连续的单元格: Range(A1:G8).Select 选择不连续的单元格: Range(A1,B6,D9).Select Range(A1,B6:B10,D9).Select 单元格间移动: ActiveCell.Offset(13, 14).Select Selection.Offset(-3, -4).Select Range(G8).Offset(-3, -4).Select 注意:你可以定义一变量,并且用offset来实现,例如: varFreightRowsCount = Range(A1).CurrentRegion.Rows.Count ActiveCell.Offset(varFreightRowsCount, 0).Select 选择整个工作表: Cells.Select 选择当前单元格所在的区域(遇到空行/空列即止): Range(A1).CurrentRegion.Select 选择行或列: Rows(1).Select Columns(A).Select或者: ActiveCell.EntireRow.Select ActiveCell.EntireColumn.Select选择相邻的多行/多列: Columns(A:C).Select Rows(1:5).Select 选择不相邻的多行/多列:注意:和选择相邻的多行/多列不同,使用Range而不是Columns/Rows: Range(A:A, C:C, E:F).Select Range(1:1,5:6,9:9).SelectWorksheets(Sheet1).A1:d14.ClearContents 清除单元格的内容将位于活动工作表上活动单元格下一行和右边三列的单元格的内容设置为双下划线格式。 如:ActiveCell.Offset(1, 3).Font.Underline = xlDouble如果要处理若干工作表上相同位置的单元格区域,可用 Array 函数选定两张或多张工作表。下例设置三维单元格区域的边框格式。Sheets (Array(Sheet2, Sheet3, Sheet5).Select Range(A1:H1).Select Selection.Borders(xlBottom).LineStyle = xlDouble5 单元格和区域赋予公式进行计算 把公式字符串赋予给单元格或区域的 Formula属性,如下例: 注意一点是公式字符串中要有开头的等号。 Sub EnterFormula() Worksheets(Sheet1).Range(D6).Formula = =SUM(D2:D5) End Sub With Worksheets(Sheet1) 使用 With End With 语句块,提高效率 .Unprotect 撤销保护,如果原先未保护则不需该句 .Rows(5).Hidden = True 隐藏第 5 行 .Columns(C).Hidden = True 隐藏 C 列 .Protect 启动保护,如果原先未保护则不需该句Range(a2:g & 20).Select 与A2:G20 相同,不同的是,数字可以做为变量对工作表的操作删除工作表Sheets(“工作表名”).Delete2) 隐藏与显示 使用工作表的 visible 属性来设置工作表是否隐藏或显示隐藏 Sheets (sheet2).Visible = False 显示 Sheets (sheet2).Visible =True3)保护与撤销 保护工作表使其不至被修改。 Sheets(“工作表名”).Protect (Password) 撤销工作表保护使其被修改。下表举例说明了使用 Rows 和 Columns 属性的一些行和列的引用。 引用 含义 Rows(1) 第 Rows 工作表上所有的行 Columns(1) 第 Columns(A) 第 Columns 工作表上所有的列 2008-11-9 练习按钮的代码 Private Sub CommandButton1_Click()Dim hanghao As Integer 定义了一个变量叫hanghaoFor hanghao = 1 To 3 循环语句 做三次循环Range(C & hanghao).Value = Sheet2.Range(D & hanghao).Value 每次循环进行复制sheet2表中 D列是1-3行的数据。Next hanghaoEnd Sub测试题1 要求做一个按纽,执行程序后在B1:B15填入101至115的数值,并在最后一行的单元格求和方法一Private Sub CommandButton1_Click()For i = 1 To 15Range(b & i).Value = 100 + iNext iRange(B16).Value = Application.WorksheetFunction.Sum(Range(B1:b15)End Sub方法二Dim i As Integer 定义变量类型 For i = 1 To 15 规循环次数 Sheets(Sheet1).Cells(i, 2) = i + 100 循环语句Next Range(b16).Value = Application.WorksheetFunction.Sum(Range(b1:b15)测试题2:现在在原来题的基础上,求B列106数的个数(包括刚才求单元格B16),并用对话框的形式显示出来Private Sub CommandButton1_Click()Dim i As IntegerFor i = 1 To 15Range(b & i).Value = 100 + iNext iRange(B16).Value = Application.WorksheetFunction.Sum(Range(B1:b15)End SubFor i = 1 To Range(B65536).End(xlUp).Row 确定寻找的范围Range(B65536).End(xlUp).Row是指B列最后一个非空单元格,END(XLUP)是向上数第一个非空单元格,为了准备找到最下面的非空单元格,当然要从RANGE(B65536)开始向上找了If Cells(i, 2) 106 Then 写入寻找对像的条件 这里的then 必须跟在IF 后面,在同一行中,K = K + 1 End IfNext iMsgBox 我认为大于106数值个数有 & K & 个, 64, 统计信息 64的意思64 ,表示对话框中只有一个按钮,确定1+64 表示有两个按钮 确定与取消 2+64 表示有三个按钮 重试,终止 忽略3+64 表示有三个按钮 是 否 取消测试题3:继续,把B列106且 106 And Cells(i, 2) 112 ThenRange(B & i).Interior.ColorIndex = 3 背景填充为红色End IfNext iEnd SubDim i As IntegerFor i = 1 To 256If Cells(19, i) = 5 ThenSheet2.Range(A:A).Value = Sheet1.Range(i:i).ValueI=i+1End IfNext iPrivate Sub CommandButton1_Click()For i = 1 To 10Sheet2.Columns(i).Value = Sheet1.Columns(2).ValueNext iEnd SubPrivate Sub CommandButton1_Click()Sheet2.Range(A1:J16).Value = Sheet1.Columns(2).ValueEnd Sub上述黄色部分能达到同样的效果,但是第二种方法,会节省很多时间 如果向下数第一个非空单元格就是range(b1).end(xldown).row向左数第一个非空单元格:range(iv1).end(xlleft).column向右数第一个非空单元格:range(a1).end(xlright).column如选取Sheet1第一行有内容单元格区域(假设A1不为空):sheets(sheet1).range(a1,range(a1).end(xltoright).select选取B列有内容单元格区域:(假设B1不为空):sheets(sheet1).range(B1,range(B65536).end(XLUP).selectRange(B & i).Interior.ColorIndex = 3 单元格背景填充为红字2008.11.10简单单元格的偏移如图Private Sub CommandButton1_Click()For i = 0 To 3Cells(6, 3 + i).Offset(1 + i, 0 - i) = Cells(6, 3 + i)Next iEnd Sub下面要进行区域的偏移测试Range(Cells(3, 10), Cells(10) = 1000上述表达的其实是第三行第十列的单元格Range(Cells(6, 3), Cells(7, 3) = 1000表示6:7Range(Cells(6, 3), Cells(7, 3).Offset(2, 0) = 1000表示6:7这个区域进行偏移后的赋值处理Private Sub CommandButton1_Click()Range(Cells(6, 3), Cells(7, 3).Offset(4, 0) = Range(Cells(6, 3), Cells(7, 3).ValueEnd Sub这种表达方式的区域赋值需要用到vlauePrivate Sub CommandButton1_Click()For i = 0 To 3Range(Cells(6, 3), Cells(6.4).Offset(2 * (i + 1), 0 - i) = Cells(6, 3 + i)Next iEnd Sub目的,是将6:7的区域的值依次复制到一列中,如图Private Sub CommandButton1_Click()For i = 0 To 3Range(Cells(6, 3 + i), Cells(7, 3 + i).Offset(2 * (i + 1), 0 - i) = Range(Cells(6, 3 + i), Cells(7, 3 + i).ValueNext iEnd Sub插入行删除行(列)等操作Private Sub CommandButton1_Click()删除行(列) Sheet1.Rows(1).Select Selection.Delete 1End SubPrivate Sub CommandButton1_Click()插入行(列) Sheet1.Rows(1).Select Selection.Insert 1End SubSub 插入列() For i=0 to 5 Columns(C:C).Select Selection.Insert Shift:=xlToRight NextEnd Sub说明,其中i就是你要插入的列数,那个Colums(C:C)就是你要插入列的位置,xlToRight就是原来单元格向右移动,要向左就是xlToLeft清楚了么?Cells(3,1).height 单元格的高度,Cells(3,1).width 单元格的宽度是否隐藏visible=true False 表示隐藏(不隐藏)把最后一个循环从大到小循环For J = Sheets(data).UsedRange.Rows.Count To 1 Step -1因为从小到大的话,比如第3、4行都为空行,而当你删除了第3行,原来第4行就变成第3行,躲过了循环的搜索。原来龙三哥比我快哟。我的回答也正是受了龙三哥的启发。向龙三哥致敬!2008-11-121合并单元格:实例Private Sub CommandButton1_Click()Range(F11:G13).Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End WithSelection.MergeEnd Sub2 取消合并的单元格Range(F11:G13).Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End WithEnd Sub取消合并单元格并自动填充哈哈Private Sub CommandButton1_Click()Columns(b:b).Select With Selection .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With 进行B列中所有合并单元格取消合并For j = 1 To UsedRange.Rows.CountIf Cells(j, 2) = ThenCells(j, 2) = Cells(j - 1, 2)End IfNext jFor k=1 to UsedRange.Columns.CountIf cells(2,k) 配送单量 then Columns(k).SelectSelection.Delete Shift:=xlToLeftEnd ifNext kEnd SubPrivate Sub CommandButton1_Click()Columns(b:b).Select With Selection .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With 进行B列中所有合并单元格取消合并For j = 1 To UsedRange.Rows.CountIf Cells(j, 2) = ThenCells(j, 2) = Cells(j - 1, 2)End IfNext jRange(B1:B2).Select Selection.Interior.ColorIndex = xlNone Selection.Font.ColorIndex = 0For k = UsedRange.Columns.Count To 1 Step -1If Cells(2, k). 配送单量 ThenColumns(k).Select Rows(Selection.Row).Select Selection.Delete Shift:=xlToLeft End If Next kEnd SubSub h() Dim xCol As Integer xCol = ActiveSheet.UsedRange.Columns.Count For i = xCol To 1 Step -1 If Cells(2, i) 配送单量 Then Cells(2, i).EntireColumn.Delete Next End SubPrivate Sub CommandButton1_Click()Dim xCol As Integer xCol = ActiveSheet.UsedRange.Columns.Count For i = xCol To 1 Step -1 If Cells(2, i) 配送单量 And Cells(2, i) 加油站 Then Cells(2, i).EntireColumn.Delete NextEnd SubPrivate Sub CommandButton1_Click()Dim xCol As Integer xCol = ActiveSheet.UsedRange.Columns.Count For i = xCol To 1 Step -1 If Cells(2, i) 配送单量 And Cells(1, i) 加油站 Then Cells(2, i).EntireColumn.Delete NextEnd Sub完成取消合并,并自动填充取消后的单元格,删除不符合条件的列,删除符合条件的单元格所在行,Private Sub CommandButton1_Click()Range(B:B,C1:C2).Select With Selection .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = FalseEnd With 进行B列中所有合并单元格取消合并For j = 1 To UsedRange.Rows.CountIf Cells(j, 2) = ThenCells(j, 2) = Cells(j - 1, 2)End IfNext jDim xCol As Integer xCol = ActiveSheet.UsedRange.Columns.Count 一定要记住列行后加S是复数形形式 For i = xCol To 1 Step -1 If Cells(2, i) 配送单量 And Cells(2, i) 加油站 And Cells(1, i) 油品 Then Cells(2, i).EntireColumn.Delete Next 删除第二行中不等于配送单量加油站的单元格所在列Dim xRo As Integer xRo = ActiveSheet.UsedRange.Rows.Count For k = xRo To 1 Step -1 If Cells(k, 2) = 合计 Or Cells(k, 2) = 汽油 Or Cells(k, 2) = 柴油 Then Cells(k, 2).EntireRow.Delete Next 删除第二列中等于合计 或者汽油或者柴油的单元格所在行Dim xH As Integer xH = ActiveSheet.UsedRange.Rows.Count For m = xH To 1 Step -1 If Cells(m, 1) = 合计 Then Cells(m, 1).EntireRow.Delete Next 删除第一列中等于”合计”的单元格所在行Dim xL As Integer xL = ActiveSheet.UsedRange.Columns.Count For n = xL To 1 Step -1 If Cells(1, n) = 合计 Then Cells(1, n).EntireColumn.Delete Next End Sub2008-11-13学习点:删除单元格所在行() Range(B2).EntireRow.Delete Range(B2).EntireRow:使用EntireRow属性可返回指定单元格所在行。删除单元格所在列() Range(B2).EntireColumn.Deleteu Range(B2).EntireColumn:使用EntireColumn属性可返回指定单元格所在列。Private Sub CommandButton1_Click()Dim xA As Integer xA = ActiveSheet.UsedRange.Columns.Count - 3 For s = 1 To xAu = ActiveSheet.UsedRange.Rows.Count Range(Cells(3, 1), Cells(u, 2).Offset(u - 2, 0) = Range(Cells(3, 1), Cells(u, 2).Value 将前面名称和油品列进行向下复制, NextEnd SubPrivate Sub CommandButton1_Click()Dim xA As Integer xA = ActiveSheet.UsedRange.Columns.Count - 3 For s = 1 To 3u = ActiveSheet.UsedRange.Rows.Count Range(Cells(3, 1), Cells(u + (s - 1) * 2) / s, 2).Offset(u - 2), 0) = Range(Cells(3, 1), Cells(u + (s - 1) * 2) / s, 2).Value 将前面名称和油品列进行向下复制, Next sEnd Sub2008-11-14 做了一个在本表的偏移实例,感觉应该建张新表做进去,不然破坏了本表的格式及数据,新的想法出现:感觉应该选择不为空的数字进行复制到另一个表中.Private Sub CommandButton1_Click()Dim xA As Integer xA = ActiveSheet.UsedRange.Columns.Count - 3 For s = 1 To 4u = ActiveSheet.UsedRange.Rows.Count Range(Cells(3, 1), Cells(u + (s - 1) * 2) / s, 2).Offset(u, 0) = Range(Cells(3, 1), Cells(u + (s - 1) * 2) / s, 2).Value 将前面名称和油品列进行向下复制, Range(Cells(3, 2 + s), Cells(u + (s - 1) * 2) / s, 2 + s).Offset(u, 1 - s) = Range(Cells(3, 2 + s), Cells(u + (s - 1) * 2) / s, 2 + s).Value Next sEnd Sub实现加油站油品数量及油库的偏移,还未完成油库的填充.Private Sub CommandButton1_Click()Dim xA As Integer xA = ActiveSheet.UsedRange.Columns.Count 2 2这个数字要看油库是从哪一列开始的,如果是第三列,则减1为2。 For s = 1 To xAu = ActiveSheet.UsedRange.Rows.Count Range(Cells(3, 1), Cells(u + (s - 1) * 2) / s, 2).Offset(u, 0) = Range(Cells(3, 1), Cells(u + (s - 1) * 2) / s, 2).Value 将前面名称和油品列进行向下复制, Range(Cells(3, 2 + s), Cells(u + (s - 1) * 2) / s, 2 + s).Offset(u, 1 - s) = Range(Cells(3, 2 + s), Cells(u + (s - 1) * 2) / s, 2 + s).Value Range(Cells(1, 2 + s), Cells(1, 2 + s).Offset(u, 2 - s) = Range(Cells(1, 2 + s), Cells(1, 2 + s).Value Next s End SubSub dfkv(i As Integer, j As Integer) For ii = 1 To i For jj = 1 To j sfor = Worksheets(1).Cells(ii, jj).Formula sval = Worksheets(1).Cells(ii, jj).Value Worksheets(1).Cells(ii, jj).Formula = Worksheets(1).Cells(ii, jj).Value = sval Next Next End Sub2008-11-16 学习将一含有公式的工作表所有数据,复制到一张新表中,粘贴的只有数值Private Sub CommandButton1_Click()Cells.Select Application.CutCopyMode = False Selection.Copy Workbooks.Add Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=FalseEnd SubSheets(Sheet1).Select Sheets(Sheet1).Name = Sheet4 修改工作表的名字Workbooks.Open Filename:=C:2.xls打开指定表从中复制内容到另一表里,复制完后,关闭源数据表Private Sub CommandButton1_Click()Workbooks.Open FileName:=C:2.xls Selection.Copy Windows(新建 Microsoft Excel 工作表.xls).Activate Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Windows(2.xls).Activate ActiveWindow.Close false 执行关闭不保存 End SubApplication.ScreenUpdating = False 关闭屏幕的刷新ChDir F:学习资料数据 Workbooks.Open Filename:=F:学习资料数据洛阳XX加油站20081101.xls Shee

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论