VBScript для импорта HTML в Excel и создания диаграммы - PullRequest
1 голос
/ 22 апреля 2011

Как вы можете сказать по следующему коду, я новичок в VBscripting для Excel.Я просто пытаюсь импортировать файл HTML («DEMO8.HTM») в Excel и создать диаграмму на основе данных в столбце F. Диаграмма должна отображаться как объект на созданном листе.У меня проблема с получением синтаксиса Chart.Add.Всякий раз, когда я изменяю это, что-то еще идет не так.Во всяком случае, вот код:

Dim chtChart

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\DEMO8.HTM")
objExcel.Visible = TRUE

Set chtChart = Charts.Add
With chtChart
    chtChart.ChartType = xlColumnClustered
    chtChart.SetSourceData.Range("'DEMO8'!$F:$F")
    chtChart.Location.xlLocationAsObject

    ActiveChart.SetSourceData Source:=Range("'DEMO8'!$F:$F")
    ActiveChart.Legend.Select
    Selection.Delete
    ActiveChart.ChartArea.Select
    ActiveChart.Axes(xlCategory).Select
    Selection.Delete
    ActiveChart.ChartArea.Select
    ActiveChart.Axes(xlValue).Select
    ActiveChart.Axes(xlValue).MaximumScale = 300
    ActiveChart.Axes(xlValue).MinimumScale = 0
End With

' Give the user control of Excel
UserControl = true

Я в основном "Франкенштейн" это из различных частей кода.Кажется, он открывает файл HTML, но не создает диаграмму.Любая помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 22 апреля 2011

Может приблизить вас к тому, что вы хотите;

Dim chtChart, objWorkbook, objExcel

const xlValue = 2
const xlColumnClustered = 51
const xlCategory = 1

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\temp\DEMO8.html")
objExcel.Visible = True

Set chtChart = objWorkbook.Charts.Add

chtChart.ChartType = xlColumnClustered
chtChart.SetSourceData objExcel.Sheets("DEMO8").Range("F:F")

objWorkbook.ActiveChart.Legend.Select
objExcel.Selection.Delete
objWorkbook.ActiveChart.ChartArea.Select
objWorkbook.ActiveChart.Axes(xlCategory).Select
objExcel.Selection.Delete
objWorkbook.ActiveChart.ChartArea.Select
objWorkbook.ActiveChart.Axes(xlValue).Select
objWorkbook.ActiveChart.Axes(xlValue).MaximumScale = 300
objWorkbook.ActiveChart.Axes(xlValue).MinimumScale = 0
0 голосов
/ 22 февраля 2018

Следующий код преобразует лист Excel в HTML:

Dim oExcel
Dim objExcelWB
Dim objExcelWS, WScript
Dim strColumnCount, strTotRows, strData, strTable

Dim i, j, objFSO, objtxt
Dim strWbk
strWbk = "<excel sheet path>"
Dim strWsheetName
strWsheetName = "<workbook name>"
Dim strHTMLFile
strHTMLFile = "<html path>"
Set oExcel = CreateObject("Excel.Application")
oExcel.Visible = False

Set objExcelWB = oExcel.Workbooks.Open(strWbk)

Set objExcelWS = objExcelWB.Worksheets(strWsheetName)
'Getting the rows and column count
 strColumnCount = objExcelWS.UsedRange.Columns.Count
 strTotRows = objExcelWS.UsedRange.Rows.Count

strTable = "<table border=""""1"""">"
'Create html table based on content of the excel file
 For j = 1 To strTotRows
  strTable = strTable & "<tr>"
  For i = 1 To strColumnCount
    strData = Trim(objExcelWS.Cells(j, i))
    strTable = strTable & "<td>" & strData & "</td>"
  Next
  strTable = strTable & "</tr>"
 Next
 strTable = strTable & "</table>"
 Set objFSO = CreateObject("scripting.FileSystemObject")
 Set objtxt = objFSO.createTextFile(strHTMLFile)
    objtxt.write (strTable)
'Closing the workbook
 objExcelWB.Close
oExcel.Quit
 Set objFSO = Nothing
Set objExcelWB = Nothing
Set oExcel = Nothing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...