精华内容
下载资源
问答
  • Sheets("评级审批表").PrintOut Copies:=ol '打印指定工作表 ActiveWorkbook.Save '保存当前工作簙 ActiveWorkbook.Close '关闭当前工作簙 Next i '打开下一个工作簙 Else MsgBox "没有找到任何工作簿文件" '...
  • 我想通过从另一个Excel工作表“效率”中提取数据,在一个Excel工作表“Ship”上构建一个表 . “效率”表上的行数据按“发货... 我希望能够在行中搜索“已发货”并复制匹配行的列A,D:F和H,并从“发货”工作表的单...

    我想通过从另一个Excel工作表“效率”中提取数据,在一个Excel工作表“Ship”上构建一个表 . “效率”表上的行数据按“发货”,“离开”,“导入”和“导出”进行分类 . 每个类别(装运,休假,进口,出口)都有几个项目,它们没有特定的顺序 . “效率”表上的表占据A:H列,从第2行开始;长度可以变化 . 我希望能够在行中搜索“已发货”并复制匹配行的列A,D:F和H,并从“发货”工作表的单元格B4开始粘贴它们 . 有人可以帮我吗?

    子船()

    ActiveSheet.Range("$A$1:$H$201").AutoFilter Field:=4, Criteria1:="Shipped"

    ' this is looking in a specific range, I want to make it more dynamic

    Range("A4:A109").Select

    'This is the range selected to copy, again I want to make this part more dynamic

    Application.CutCopyMode = False

    Selection.Copy

    Range("A4:A109,D4:F109,H4:H109").Select

    Range("G4").Activate

    Application.CutCopyMode = False

    Selection.Copy

    Sheets("Ship").Select

    Range("B4").Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

    :=False, Transpose:=False

    结束子

    展开全文
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧48 保存指定工作表为工作簿文件 12 技巧49 打印预览时不触发事件 12 技巧50 设置工作簿文档属性信息 12 技巧51 不打开工作簿取得其他工作簿数据 12 51-1 使用公式 12 51-2 使用GetObject函数 12 51-3 隐藏...
  • MATCH 在单元格区域 (区域:工作表上的两个或多个单元格。区域中的单元格可以相邻或不相邻。)中搜索指定项,然后返回该项在单元格区域中的相对位置的函数

    MATCH 在单元格区域 (区域:工作表上的两个或多个单元格。区域中的单元格可以相邻或不相邻。)中搜索指定项,然后返回该项在单元格区域中的相对位置的函数

    MATCH(lookup_value, lookup_array, [match_type])

    MATCH 函数语法具有下列参数 参数:为操作、事件、方法、属性、函数或过程提供信息的值。

    • lookup_value    必需。要在 lookup_array 中匹配的值。
      lookup_value 参数可以为值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。
    • lookup_array    必需。要搜索的单元格区域。
    • match_type    可选。数字 -1、0 或 1。match_type 参数指定 Excel 如何将 lookup_value lookup_array 中的值匹配。此参数的默认值为 1。

      下表介绍该函数如何根据 match_type 参数的设置查找值。
    Match_type 行为
    1 或省略 MATCH 查找小于或等于 lookup_value 的最大值。lookup_array 参数中的值必须以升序排序,例如:...-2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE。
    0 MATCH 查找完全等于 lookup_value 的第一个值。lookup_array 参数中的值可按任何顺序排列。
    -1 MATCH 查找大于或等于 lookup_value 的最小值。lookup_array 参数中的值必须按降序排列,例如:TRUE, FALSE, Z-A, ...2, 1, 0, -1, -2, ... 等等。


     注释 

    • MATCH 返回匹配值在 lookup_array 中的位置,而非其值本身。例如,MATCH("b",{"a","b","c"},0) 返回 2,即“b”在数组 {"a","b","c"} 中的相对位置。
    • 匹配文本值时,MATCH 函数不区分大小写字母。
    • 如果 MATCH 函数查找匹配项不成功,它会返回错误值 #N/A。
    • 如果 match_type 为 0 且 lookup_value 为文本字符串,您可在 lookup_value 参数中使用通配符 - 问号 (?) 和星号 (*) 。问号匹配任意单个字符;星号匹配任意一串字符。如果要查找实际的问号或星号,请在字符前键入波形符 (~)。

    展开全文
  • VBA编程技巧大全

    2013-08-05 09:03:19
    技巧48 保存指定工作表为工作簿文件 116 技巧49 打印预览时不触发事件 118 技巧50 设置工作簿文档属性信息 120 技巧51 不打开工作簿取得其他工作簿数据 121 51-1 使用公式 121 51-2 使用GetObject函数 122 51-3 隐藏...
  • VBA程序集(第2辑)

    2011-07-17 22:11:00
    VBA程序集 (第2辑) ...一旦找到匹配的数据,就将其复制到另一个工作表(“搜索结果”)中。 [条件]要求有一个命名为“搜索结果”的工作表。 [程序扩展](1)可以修改程序指定搜索的值...
    
    

    VBA程序集
    (第2辑)

    *********************************************
    程序6(查找)
    [程序功能] 搜索值并输入到单独的工作表中。在当前工作表的列中搜索单词(“您好”)。一旦找到匹配的数据,就将其复制到另一个工作表(“搜索结果”)中。
    [条件]要求有一个命名为“搜索结果”的工作表。
    [程序扩展](1)可以修改程序指定需搜索的值,也可以在该处设计一个输入框用来选取或输入要搜索的值。
    (2)可以修改指定当前工作表搜索的范围。
    (3)程序在搜索到指定的数据后,将会把包含此数据的整行复制到指定的工作表。可以进行修改,只复制指定的数据。同时,也可以将程序应用到设定搜索条件,搜索到满足条件的数据后,将得到整条记录结果(即查找满足条件的记录)。
    [程序代码]
    Option Explicit
    Sub FindMe()
    Dim intS As Integer
    Dim rngC As Range
    Dim strToFind As String, FirstAddress As String
    Dim wSht As Worksheet

    Application.ScreenUpdating = False

    intS = 1
    Set wSht = Worksheets("搜索结果")
    strToFind = "您好" '指定搜索的值

    With ActiveSheet.Range("A1:C20") '可根据实际工作表改变范围.
    Set rngC = .Find(what:=strToFind, LookAt:=xlPart)
    If Not rngC Is Nothing Then
    FirstAddress = rngC.Address
    Do
    rngC.EntireRow.Copy wSht.Cells(intS, 1)
    intS = intS + 1
    Set rngC = .FindNext(rngC)
    Loop While Not rngC Is Nothing And rngC.Address <> FirstAddress
    End If
    End With

    Application.ScreenUpdating = True

    End Sub

    示例文档见UploadFiles/2006-6/617259916.rar

    ***************************************
    程序7(查找)
    [程序功能] 根据值插入行。在某一列中搜索某个值,当找到该值时,就插入一个空行。
    [条件] 下面的程序假设在 B 列中搜索值“1”,当找到该值时,就插入一个空行。
    [程序扩展] 可以改变要搜索的值,或用对话框交互。也可改变搜索的范围。
    [程序代码]
    Sub 根据搜索值插入行()
    Dim Rng As Range
    Dim findstring As String

    findstring = "1" '要搜索的值,在具体应用时可根据需要改变

    Set Rng = Range("B:B").Find(What:=findstring, LookAt:=xlWhole) '根据实际改变范围
    While Not (Rng Is Nothing)
    Rng.EntireRow.Insert
    Set Rng = Range("B" & Rng.Row + 1 & ":B" & Rows.Count).Find(What:=findstring, LookAt:=xlWhole)
    Wend
    End Sub

    示例文档见UploadFiles/2006-6/617931442.rar

    **************************************
    程序8
    [程序说明] 在活动工作表上的某列单元格中的数据是其它工作表名,运行程序后,工作表名单元格所在的行将被复制到与单元格内容同名的工作表中。运行程序时,源数据表必须为活动工作表。
    [程序扩展] 本示例提供了一个思路,即可以将源数据工作表的数据根据特定的值进行筛选,并将筛选后的结果展示在新的不同的工作表中。
    示例中值在第11列,即K列,可以根据情况改为第1列或其它列。
    可根据情况进一步拓展。
    [程序代码]
    Sub ProcessRows()
    Dim lngRowSource As Long
    Dim lngRowTarget As Long
    Dim strStatus As String

    For lngRowSource = 1 To 25
    '工作表的名字在第11列,也可以随需要更改如改为第1列
    strStatus = ActiveSheet.Cells(lngRowSource, 11).Value
    If strStatus <> "" Then
    lngRowTarget = TargetRow(Sheets(strStatus))
    ActiveSheet.Range(Cells(lngRowSource, 1), Cells(lngRowSource, 15)).Copy _
    Sheets(strStatus).Cells(lngRowTarget, 1)
    End If
    Next

    End Sub

    Function TargetRow(ws As Worksheet) As Long '返回第一个空行的行号
    Dim lngLastRow As Long
    '在第11列即K列中查找空单元格,也可以根据情况改为第1列
    lngLastRow = ws.Cells(Rows.Count, 11).End(xlUp).Row
    If IsEmpty(ws.Cells(lngLastRow, 11)) Then
    TargetRow = 1
    Else
    TargetRow = lngLastRow + 1
    End If
    End Function

    示例文档见UploadFiles/2006-6/617710918.rar

    ***************************************
    程序9(窗体控件——列表框/组合框)
    [程序功能] 对逐层分类以及与逐层分类相似结构的表格,通过列表框/组合框来实现:第一个列表框/组合框为第一层分类,第二个列表框/组合框为第一层分类选择的类别所属的分类……依此类推。
    [程序扩展] (1)本示例用列表框实现,也可用组合框实现。
    (2)当数据工作表不是当前表时,可对程序进行适当修改,即列表框/组合框数据引自其它的工作表。因此,可以将数据工作表作为隐藏的数据源。
    [程序代码]
    Option Explicit
    Private Sub UserForm_Initialize()
    AddFruit Range([A1], [A1].End(xlDown))
    ListBox1.ListIndex = 0
    With Label1
    .Caption = Cells(1, 1).Value
    .Font = "隶书"
    End With
    With Label2
    .Caption = Cells(1, 2).Value
    .Font = "隶书"
    End With
    With Label3
    .Caption = Cells(1, 3).Value
    .Font = "隶书"
    End With
    End Sub

    Sub AddFruit(Data As Range)
    Dim d, cel As Range
    Set d = CreateObject("Scripting.Dictionary")
    For Each cel In Data
    On Error Resume Next
    d.Add cel.Text, cel.Text
    Next
    ListBox1.List() = d.items
    End Sub

    '********************************
    Private Sub ListBox1_Change()
    ListBox2.Clear
    AddType Range([B1], [B1].End(xlDown))
    ListBox2.ListIndex = 0
    ListBox3.ListIndex = -1
    End Sub

    Sub AddType(Data As Range)
    Dim d, cel As Range
    Set d = CreateObject("Scripting.Dictionary")
    For Each cel In Data
    If cel.Offset(, -1) = ListBox1 Then
    On Error Resume Next
    d.Add cel.Text, cel.Text
    End If
    Next
    ListBox2.List() = d.items
    End Sub

    '********************************
    Private Sub ListBox2_Change()
    ListBox3.Clear
    AddMake Range([C1], [C1].End(xlDown))
    If ListBox2 <> "" Then ListBox3.ListIndex = 0
    End Sub

    Sub AddMake(Data As Range)
    Dim d, cel As Range
    Set d = CreateObject("Scripting.Dictionary")
    For Each cel In Data
    If cel.Offset(, -1) = ListBox2 Then
    On Error Resume Next
    d.Add cel.Text, cel.Text
    End If
    Next
    ListBox3.List() = d.items
    End Sub

    示例文档见UploadFiles/2006-6/617411253.rar

    ***************************************
    程序10(窗体控件——列表框/组合框)
    [程序说明] 要求能实现连续打印。Sheet2为源数据,Sheet1为结果,在Sheet1表中,网友已用数据有效性功能根据电脑编号实现不同人员的表单显示,即在下拉列表中选择电脑编号,显示相应人员的表单。如果需要将这些表单全打印出来,数据量大的话,需要在下拉列表中一个个选,然后击工具栏上的“打印”按钮,重复操作,很费时,且容易操作错误(重选、漏选)。
    [程序思路] 只能使用VBA实现,考虑用户窗体中的控件。可选用组合框或列表框,这里用的是列表框。将数据源(即电脑编号)添加到列表框,然后赋值给Sheet1中“电脑编号”区域(已命名为“computer”,即设置数据有效性的区域),在列表框项目中循环,并实现连续打印。
    [界面]一个列表框,设置为隐藏;一个按钮,用于激活列表框以实现连续打印控制。
    [程序代码]
    Private Sub CommandButton1_Click()
    ListBox1.ListIndex = 0
    End Sub
    '注:ListBox1.ListIndex = 0语句不能在listBox1_Change()过程中,应在其它过程中,以激发列表框变化,从而'激活listBox_Change事件,调用事件过程中的循环语句,改变工作表中的数据,相应得到各编号表单,并打印

    Private Sub listBox1_Change()
    '可以用VBA语句将工作表中的值赋给列表框,本例中在属性的RowSource进行赋值
    '将列表框中的数据与设值了有效性的单元格建立链接Range("computer").Value = ListBox1.Value
    For j = 0 To ListBox1.ListCount - 1 '从列表框中的第一项循环至最后一项
    Range("computer").Value = ListBox1.List(j) '将列表框每项数据赋值给单元格区域,工作表中产生相应表单
    Sheets(1).PrintOut Copies:=1, Collate:=True '打印
    Next j
    Unload UserForm1 '关闭窗体
    End Sub

    '在ThisWorkbook中设置工作簿打开时的动作
    Private Sub Workbook_Open()
    UserForm1.Show
    End Sub

    注:load方法可以装载窗体,但窗体是隐藏的。

    示例文档见UploadFiles/2006-6/617231159.rar

    展开全文
  • Excel_VBA程序设计.pdf

    热门讨论 2009-08-31 23:05:20
    第五课 利用VBA设置工作表使用权限 23 1.使用With语句。 25 2.使用对象变量。 25 方法3:减少对象的激活和选择 26 方法4:关闭屏幕更新 26 第六课 提高Excel中VBA的效率 27 方法1:尽量使用VBA原有的属性、方法和...
  • 第16章介绍了使用VB开发AutoCAD的一些知识(将VBA代码转换到VB中,VB窗体和AutoCAD的焦点切换,使用ActiveXDLL封装带有窗体的VB程序)、搜索某个文件夹中所有的文件和VBAIDE的编程,利用这些知识,完全有可能开发出...
  • 34.在多个工作表中查找一个范围内符合某个指定条件的项目对应指定范围加总求和 35.返回 Column 英文字 36.查找指定列名的列数 37.文字格式的时间(分:秒)转化为数字格式(秒) 38.将"hh:mm:ss"格式的时分秒数转换成秒数...
  • 函数作用:在多个工作表中查找一个范围内符合某个指定条件的项目对应指定范围加总求和..........................59 '35.函数作用:返回 Column 英文字.......................60 '36.函数作用:查找指定列名的列数.......
  • 附件的 .xls文件,打开以后,会看见三个工作表,分别演示了 找一个数值在曲线上的一组对应点 找一个数值在曲线上的所有对应点 和贝塞尔曲线是怎样在通过每两个节点的(每一对输入的X-Y数值代表平面坐标系的一个点,...
  • 工作表拆分】 将当前工作表的某列数据按指定条件拆分成多个工作表,可以用任意列的数据以及选定的数据做为拆分条件。 【行列奇偶选择】 可视化对当前工作表的行与列进行快速的奇偶行或奇偶列快速选定操作。 【查找...
  • EXCEL集成工具箱V6.0

    2010-09-11 01:44:37
    工作表拆分】 将当前工作表的某列数据按指定条件拆分成多个工作表,可以用任意列的数据以及选定的数据做为拆分条件。 【行列奇偶选择】 可视化对当前工作表的行与列进行快速的奇偶行或奇偶列快速选定操作。 ...
  • 工作表拆分】 将当前工作表的某列数据按指定条件拆分成多个工作表,可以用任意列的数据以及选定的数据做为拆分条件。 【行列奇偶选择】 可视化对当前工作表的行与列进行快速的奇偶行或奇偶列快速选定操作。 ...
  • 工作表拆分】 将当前工作表的某列数据按指定条件拆分成多个工作表,可以用任意列的数据以及选定的数据做为拆分条件。 【行列奇偶选择】 可视化对当前工作表的行与列进行快速的奇偶行或奇偶列快速选定操作。 ...
  • 工作表拆分】 将当前工作表的某列数据按指定条件拆分成多个工作表,可以用任意列的数据以及选定的数据做为拆分条件。 【行列奇偶选择】 可视化对当前工作表的行与列进行快速的奇偶行或奇偶列快速选定操作。 ...
  • 1517.3.2 链接Excel工作表 1567.4 使用Microsoft Outlook和Exchange 文件夹 1567.4.1 用Outlook导出和导入Jet 4.0表 1577.4.2 使用Exchange/Outlook向导的链接 1597.5 导入文本文件 1607.5.1 使用导入文本向导 1617....
  • 1517.3.2 链接Excel工作表 1567.4 使用Microsoft Outlook和Exchange 文件夹 1567.4.1 用Outlook导出和导入Jet 4.0表 1577.4.2 使用Exchange/Outlook向导的链接 1597.5 导入文本文件 1607.5.1 使用导入文本向导 1617....
  • 1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....
  • 1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....
  • 1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....
  • 1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....
  • 1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....
  • 1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....
  • 1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....
  • 1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....
  • 1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....

空空如也

空空如也

1 2 3 4
收藏数 70
精华内容 28
热门标签
关键字:

vba搜索指定工作表