VBScript将过滤后的信息从excel导出到网页上?

时间:2013-09-10 17:02:44

标签: html excel vba excel-vba vbscript

我对VBScript非常陌生,并且在过去几天一直试图解决这个问题,搜索数百个(字面意思)的论坛/网站,找不到满足我需求的解决方案,所以这里有:P

我目前有一个电子表格,其中包含大量客户详细信息,例如;

MPN |经理姓名|问题

077 |约翰史密斯|是

077 |简约克|否

我正在尝试将信息提取到网页,甚至可能是新的excel文件,但可以选择只显示问题“否”的单元格并过滤它们,以便管理员分开

到目前为止,我有;

Sub testing123()

    Workbooks.Open Filename:="P:\book.xls"
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 6
    ActiveSheet.Range("$B$4:$K$65536").AutoFilter Field:=10, Criteria1:= _
    "=Question", Operator:=xlOr, Criteria2:="=Yes"
    ActiveWorkbook.SaveAs Filename:="P:\book123.xls", FileFormat:=xlExcel8, _
    Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
    CreateBackup:=False

    ActiveWorkbook.Close

End Sub

上面的代码位于单独的Excel工作表中,它打开主工作簿,过滤信息(问题=是)并将其另存为不同的名称。 我的目标是能够将信息提取到不同的工作表上,但只能直接提取过滤后的信息,并且可以根据经理名称进行排序。

如果这很难理解我很抱歉,我为缺少相关代码而道歉,但如果您需要更多信息请告诉我

1 个答案:

答案 0 :(得分:0)

做这样的事情怎么样?我知道它与你正在做的完全不符,但它是另一种方法:

Sub Test()
    Dim intSourceRowNum As Integer
    intSourceRowNum = 2
    Dim intDestRowNum As Integer
    intDestRowNum = 1
    Dim objSourceSheet As Worksheet
    Set objSourceSheet = ActiveWorkbook.Sheets(1)
    Dim objDestSheet As Worksheet
    Set objDestSheet = ActiveWorkbook.Sheets(2)

    Do Until IsEmpty(objSourceSheet.Cells(intSourceRowNum, 1))
        If (StrComp(objSourceSheet.Cells(intSourceRowNum, 3).Value, "Yes", vbTextCompare) = 0) Then
            objDestSheet.Cells(intDestRowNum, 1).Value = objSourceSheet.Cells(intSourceRowNum, 1).Value
            objDestSheet.Cells(intDestRowNum, 2).Value = objSourceSheet.Cells(intSourceRowNum, 2).Value
            objDestSheet.Cells(intDestRowNum, 3).Value = objSourceSheet.Cells(intSourceRowNum, 3).Value
            intDestRowNum = intDestRowNum + 1
        End If

        intSourceRowNum = intSourceRowNum + 1
    Loop
End Sub

基本上,它遍历源表中包含数据的所有行,并且如果源行符合您的条件,则只将每个源行的值写入目标表。