我尝试创建一个宏,将HTML(Web)表中的数据提取/复制到Excel,并删除某些列并从复制的HTML表中复制特定数据。这个过程将是;
请帮助我,因为我是VBA的新手。
这将是excel中的格式;
- a b c d
虽然这是表格式HTML(仅限样本)。 HTML表每页有10行,日期列也有文本内容,但我只需要日期和时间 - 不知何故它只需要过滤' yyyy-mm-dd hh:mm:ss'数据
- a c - - - - - b - d
我这里有一个示例代码:
Sub Paste()
Application.ScreenUpdating = False
Range("XEY1").Select
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
y = 4
While Not Range("A" & y) = ""
y = y + 1
Wend
d = Range("XEY3")
Range("A" & y) = Replace(Mid(d, InStr(d, "(") + 5, InStr(d, ")") - InStr(d, "(") - 5), " CET", "")
Range("F" & y) = Range("XEY11")
Range("G" & y) = Range("XEY18")
ActiveSheet.Range("XEY1:XEY50").Clear
Application.ScreenUpdating = True
End Sub
提前致谢。
答案 0 :(得分:0)
我能够发现这将如何发生。
代码:
Option Explicit
Sub Button11_Click()
Application.ScreenUpdating = False
Dim j As Integer, b As Integer, r As Integer, g As String
Range("XET1").Select
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
False, NoHTMLFormatting:=True
j = 6
b = 1
For r = 5 To 1000
If ActiveSheet.Cells(r, 5).Value <> "" Then
Range("C" & j).Value = Range("XEU" & b).Value
g = Range("XEV" & b)
Range("E" & j).Value = Replace(Mid(g, InStr(g, "(") + 5, InStr(g, ")") - InStr(g, "(") - 5), "CEST", "")
Range("D" & j).Value = Replace(Mid(g, InStr(g, "") + 38, InStr(g, ")") - InStr(g, "(") + 25), "REQ", "")
Range("F" & j).Value = Range("XFD" & b).Value
j = j + 1
b = b + 1
End If
Next r
ActiveSheet.Range("XET1:XFD50").Clear
Application.ScreenUpdating = True
End Sub