来自Noob的VBS问题

时间:2013-04-04 20:44:41

标签: search vbscript criteria

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

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

提前致谢!

2 个答案:

答案 0 :(得分:1)

有两种方法可以自动操作电子表格(Excel?)数据:两种方法都以用普通/自然语言指定您的任务开始(例如,'复制所有行,其中?? - 日期大于等于21天/ less / small等于当前日期从sheet ??(row / col?)到sheet ??(row / col?)'然后

  1. 使用宏录制器获取VBA代码来解决任务和“端口”。它到VBScript
  2. 将任务描述转换为SQL语句,并在与电子表格的ADO连接上执行它们
  3. 第一种或第二种方式对你来说是否更好取决于你的知识和技能。

答案 1 :(得分: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"