If 工作表2.Cells(34, 8).Value > 0 And 工作表2.Cells(33, 8).Value > 0 And 工作表2.Cells(32, 8).Value > 0 _
And 工作表2.Cells(31, 8).Value > 0 And 工作表2.Cells(30, 8).Value > 0 And 工作表2.Cells(29, 8).Value > 0 _
And 工作表2.Cells(28, 8).Value > 0 And 工作表2.Cells(27, 8).Value > 0 Then
工作表1.Cells(i, 17).Value = 1
Else
工作表1.Cells(i, 17).Value = 0
End If
Next
End Sub
=================
請問 On Error Resume Next
要用在 FOR NEXT 下方
還是 下方
要判斷是否大於0是要用 AND 還是 &
如果有不是數字的例"-"要如何
謝謝作者: GBKEE 時間: 2013-9-19 08:27
Option Explicit
Dim ie As Object '模組最頂端 Dim 供這模組的程序使用的變數
Sub AllFile()
Dim i As Integer, v, Y As Integer, S As String
Set ie = CreateObject("internetexplorer.application") '使用此方式可以免除 "設定引用項目"
With ie '縮小IE視窗
.Visible = True
.Width = 5
.Height = 5
End With
With 工作表1
' .Range("E2").CurrentRegion = "" '清除工作表1,年度範圍
For i = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
v = .Cells(i, 1).Value
GetDividend (v)
工作表2.Range("D4").CurrentRegion.Replace "--", "", xlWhole
Next
End With
With ie 'IE視窗最大化
Application.WindowState = xlMaximized
.Height = Application.Height
.Width = Application.Width
.Quit
End With
End Sub
Private Sub GetDividend(ByVal ss As String)
Dim rr As String, T As Date, i, ii, k, j, S
On Error Resume Next
T = Time
rr = "http://yamstock.megatime.com.tw/asp/stockinfo/GetReport.asp?select_table=html\Ficxxx\&stockid=" & ss & "&name1=D4&index1=12" ' 正確的
With ie
.Navigate rr
Do While .ReadyState <> 4 '等待網頁下載完畢
DoEvents
If Time >= T + #12:00:03 AM# Then '等待3秒
DoEvents
Application.SendKeys "~" '股票代號錯誤,網頁會有訊息,須按確定,才可繼續下面股票代號
Exit Do
End If
Loop
Set S = .Document.getelementsbytagname("table")(4) ' 新的 table 4
With 工作表2
.UsedRange.Clear
For i = 0 To S.Rows.Length - 1 '寫入資料
k = k + 1
For j = 0 To S.Rows(i).Length - 1
For ii = 0 To S.Rows(i).Cells.Length - 1
.Cells(k, ii + 1) = S.Rows(i).Cells(ii).innertext
DoEvents
Next
Next
Next
End With
End With
再請在 G 大大
新手如何去發現程式中沒有錯誤的變化
像程式中的
Do
Set S = .Document.getElementsByTagName("table")(4) ' 新的 table 4
Loop Until Not S Is Nothing
謝謝作者: wufonna 時間: 2014-9-3 21:00
玩了一下,會出錯是沒抓到資料,好像是程式跑太快,流量限制的問題,可是沒擋ip?
程式沒問題,另外做一個commandbutton,全部編號跑完後,再重抓有空白的資料
Sub test()
With 工作表1
For i = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
只抓沒資料的編號
If .Cells(i, 3) = "" Then
v = .Cells(i, 1).Value
GetDividend (v)
'這幾行code 同 AllFile ,恕刪
End If
Next
End With
End Sub作者: wufonna 時間: 2022-2-12 22:16