-2

我是 vbs 的新手,需要知道如何在列中搜索某些条件,然后将匹配该条件的任何行复制到新的电子表格中。我有几个类别的数据,我从一个电子表格中提取所有数据,但它需要在此列上进行大量过滤,在此列上过滤,在另一列中关注此条件,如果匹配则复制并粘贴该行到适当的类别”。我基本上想承担所有这些手动工作并将其自动化。

我的第二个问题是在某些列中搜索我有日期时,我需要找到符合“21 天或更接近当前日期”标准的行。如何指定脚本来查看日期并复制和粘贴距当前日期不超过 21 天的所有行?

提前致谢!

4

2 回答 2

1

有两种方法可以自动处理电子表格(Excel?)数据:两者都从用普通/自然语言指定您的任务开始(例如,'复制所有行 ??-date 21 days greater/greater equal/smaller/smaller equal than当前日期从工作表 ?? (row/col?) 到工作表 ?? (row/col?)' 然后

  1. 使用宏记录器获取 VBA 代码来解决任务并将其“移植”到 VBScript
  2. 将任务描述转换为 SQL 语句并在与电子表格的 ADO 连接上执行它们

第一种还是第二种方式更适合你,取决于你的知识和技能。

于 2013-04-04T21:13:23.550 回答
0

您对使用 VBS 创建自定义宏感兴趣吗?在 Development/Visual Basic 下添加 VB 文件,您可以处理行和列。

Sub CountX(pRowStart As Integer, pRowStop As Integer, pColStart As Integer, pColStop As Integer, pObjGrp As String)
            Dim x As Integer
            Dim xRow As Integer
            Dim xCol As Integer
            Dim wSht As Worksheet

            x = 0
            '**** create object reference to worksheet object.
            Set wSht = Worksheets("Sheet1")

            '**** set cell control values
            xRow = 1
            xCol = 3        
            Do While xRow < pRowStop + 1
                Do While xCol < pColStop + 1
                    If UCase(ActiveSheet.Cells(xRow, xCol)) = "X" Then
                        x = x + 1
                    End If
                    xCol = xCol + 1
                Loop
                xCol = pColStart
                xRow = xRow + 1
            Loop
    End Sub

您还可以将此添加到您的代码中以激活另一张工作表并将值设置为第 1 行第 3 列

Sheets(psSheetName).Activate 
ActiveSheet.Cells(1, 3).Value = "value"
于 2013-04-04T21:15:09.523 回答