列无需修改)。现在问题是如何根据表B中的新值,在表A中找到相应位置,并加以修 改。比如表B中列出了10002的JOHN的身高和体重等值需要修改,如何在A中找到 10002的相应位置(身高体重),并加以修改。 建議將表b複製至表a的sheet2,然後執行下列的宏即可 sub change() dim dd as range sheets(2).select lastcell = range("a65536").end(xlup).row for each dd in range(cells(2, 1), cells(lastcell, 1)) if dd = "" then exit sub ff = dd.value set c = sheets(1).columns(1).find(ff, lookat:=xlwhole) if not c is nothing then c.offset(0, 2) = dd.offset(0, 2) c.offset(0, 3) = dd.offset(0, 3) c.offset(0, 5) = dd.offset(0, 4) end if next end sub 自定义菜单 把建立和删除自定义菜单的代码分别写在Workbook_open和Workbook_beforeclosed 的事件中。 应该用VBA,工作薄代码中有workbook-open()过程,在该过程中写入 with activeworkbook .sheets("表2").active end with VBA实现向锁定工作表中插入行,并自动复制上面行中指定列的函数 Option Explicit Public Const strPass = "123" 123是口令 Sub 行上再插入一行() ActiveSheet.Unprotect password:=strPass Selection.Copy Selection.Insert Shift:=xlDown Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False ActiveSheet.Protect password:=strPass End Sub 如何使不出现每次关闭XLS文件时出现的: “XXX.xls文件已被修改,是否可在其修改后的内容?”字样?? 可以在工作表关闭之前进行手工保存工作 ThisWorkbook.save 如何实现动态时间显示? sub mytime range("a1")=now() Application.OnTime Now + Timevalue("00:00:01"), "mytime" end sub 用 vba 判断指定 excel 文件是否打开? For Each w In Workbooks If w.Name XXX Then ………… End If Next w vba怎么调用excel自带的函数?比如vlookup? Application.WorksheetFunction.f(x) f(x)是你想使用的工作表函数 但是用内部函数时引用单元格会出错,怎么办? 把你要引用的单元格改成VBA认可格式(类型)。如在Excel中的“F7:F12”应改为 “Range("F7:F12")”等。 VBA中如何关闭,保存和退出Excel? Workbooks("你的工作簿").Save。 下表举例说明了使用 Rows 和 Columns 属性的一些行和列的引用。 引用 含义 Rows(1) 第一行 Rows 工作表上所有的行 Columns(1) 第一列 Columns("A") 第一列 Columns 工作表上所有的列 若要同时处理若干行或列,请创建一个对象变量并使用 Union 方法,将对 Rows 属 性或 Columns 属性的多个调用组合起来。下例将活动工作簿中第一张工作表上的第 一行、第三行和第五行的字体设置为加粗。 Sub SeveralRows() Worksheets("Sheet1").Activate Dim myUnion As Range Set myUnion = Union(Rows(1), Rows(3), Rows(5)) myUnion.Font.Bold = True End Sub 如果只是你说的只连接几个储存格那用简单的方法 Range("A1").Formula = Application.Evaluate("=[Book2.xls]Sheet1!A1") 或 Range("A1").Formula = "=[Book2.xls]Sheet1!A1" 请问在vba如何呼叫已定义的名称范围 我在a1:b100插入名称∶myrange 请问我如何用vba选取此范围 Range("myrange").Select 如何访问没有打开的EXCEL文件? Sub AlternativeImport() Dim xlapp As Excel.Application Dim wbSource As Excel.Workbook Set xlapp = New Excel.Application xlapp.EnableEvents = False Set wbSource = xlapp.Workbooks.Open("C:/test/Book2.xls") Range("A1:A10").Value = wbSource.Sheets("Sheet1").Range ("A1:A10").Value wbSource.Close False xlapp.Quit End Sub 怎样使VBAprject工程不可查看?(不用密码) 用可编辑十六进制文件的软件工具(如WinHex等)打开Excel.xls,在文件的尾部,查 找ID="{00000000-0000-0000-0000-000000000000}"(有工程锁定密码时),或 ID="{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"(没有工程锁定密码时),修改其中 的任意1位后,保存,即可达到目的.当查看工程是会出现“工程不可查看”的提示. 注意:修改前,一定要备份原文件,以防不测 如何用VBA控制报表的格式(左边距,纸张大小,打印第几页等) 打印第几页控制:ActiveWindow.SelectedSheets.PrintOut From:=x, To:=y ActiveSheet.PageSetup.LeftMargin= 左边距 ActiveSheet.PageSetup..PaperSize = 纸张大小 如何使VBA自动消除使用COPY复制后产生的虚线框? Application.CutCopyMode = False |