将 Excel 工作表中的值列复制到网站中的 HTML 表中

Posted

技术标签:

【中文标题】将 Excel 工作表中的值列复制到网站中的 HTML 表中【英文标题】:Copying columns of values from Excel worksheet to an HTML table in a website 【发布时间】:2017-03-07 19:05:46 【问题描述】:

我希望将值从 excel 表复制到 html 表中。如果有人在 Excel 2013 和 Internet Explorer 11 之间有这样做的经验,请告诉我,我可以提供详细信息。谢谢

以下是我尝试自动化填写过程的网站代码的一小部分:

Table and Source Code for Charge Numbers for the Site

这仅显示流程的一部分(收费数字),我们每周有 10 到 25 小时,每天向他们收取相应的小时数(如表格矩阵所示)。

每页有7个charge numbers,Charge Numbers都有name="chargeNo",并且每个框向下增加id名称,如下所示:

'1) id="chargeNo0"  
'2) id="chargeNo1"  
'3) id="chargeNo2"  
'4) id="chargeNo3"  
'5) id="chargeNo4"  
'6) id="chargeNo5"  
'7) id="chargeNo6"  

一周中的每一天也有如下设置名称:

Table and Source Code for Hours Charged Each Day

'Saturday: name="hrs0"  
'Sunday: name="hrs1"  
'Monday: name="hrs2"  
'Tuesday: name="hrs3"  
'Wed: name="hrs4"  
'Thurs: name="hrs5"  
'Fri: name="hrs6"  

我正在尝试自动化从 Excel 中提取充电时间数组并将它们输入到各自的文本框中的过程。

【问题讨论】:

您好,欢迎来到 ***。请花一些时间阅读帮助页面,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。更重要的是,请阅读the Stack Overflow question checklist。您可能还想了解Minimal, Complete, and Verifiable Examples。并包含您正在尝试解决的代码......以便人们可以提供帮助。 您的意思是要将范围转换为 html 表格,以便它可以成为网页的全部或一部分?该网站是否有您希望使用 VBA 填写的表格?这些只是您问题的两种可能含义。如果您包含错误代码,我们可能会猜到您想要什么。 【参考方案1】:

此脚本会将 ColumnA 中的元素转换为数组。

Sub MakeArray()
   Dim arr As Variant

   With ActiveSheet
      arr = WorksheetFunction.Transpose(.Range(.[A1], .Cells(Rows.Count, "A").End(xlUp)))
   End With
End Sub


Sub MakeString()
   Dim s As String

   Const DELIMITER = ","

   With ActiveSheet
      s = Join(WorksheetFunction.Transpose(.Range(.[A1], .Cells(Rows.Count, "A").End(xlUp))), DELIMITER)
   End With
End Sub

如果你想将数组传递给 HTML 文本框,试试这个。

    Sub CreateArrayAndPassToHTMLTextbox()
       Dim ie  As Object
       Dim arr As Variant

       Const DELIMITER = ","

       Set ie = CreateObject("InternetExplorer.Application")

       ie.Visible = True
       ie.navigate "http://home.arcor.de/peter.schleif/SearchForTDelement.html"
       While ie.Busy: DoEvents: Wend

       With ActiveSheet
          arr = WorksheetFunction.Transpose(.Range(.[A1], .Cells(Rows.Count, "A").End(xlUp)))
          If Not IsArray(arr) Then arr = Array(arr)
          ie.document.getElementById("trackField").Value = Join(arr, DELIMITER)
       End With
    End Sub

例如,如果您想将数据传递给 ComboBox,试试这个。

Sub passValueToComboBox1()
   Dim ie  As Object
   Dim oHTML_Element As IHTMLElement

   Set ie = CreateObject("InternetExplorer.Application")
   ie.Visible = True
   ie.navigate "http://peterschleif.bplaced.net/excel/combobox/index.php"
   While ie.Busy Or ie.readyState <> 4: DoEvents: Wend

   Set oHTML_Element = ie.document.getElementsByName("selectedReportClass")(0)
   If Not oHTML_Element Is Nothing Then oHTML_Element.Value = "com.db.moap.report.FUBU7"

   For Each oHTML_Element In ie.document.getElementsByTagName("input")
      If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For
   Next
End Sub

【讨论】:

以上是关于将 Excel 工作表中的值列复制到网站中的 HTML 表中的主要内容,如果未能解决你的问题,请参考以下文章

将多个工作表中的值复制并粘贴到摘要工作表中

Excel VBA如何填充不同工作表中的值

清除与多个Excel工作表中的列对应的值

将我的 Access 表导出到 Excel,但将列中的不同值拆分到不同的工作表中

如何把网络的网页表格数据导入到Excel表中

Excel宏比较两个工作表中的两列并插入行值