標題:
程式碼精簡
[打印本頁]
作者:
vic
時間:
2015-7-24 20:19
標題:
程式碼精簡
If Second(Time) Mod 30 = 0 Then
xRow = Sht1.Range("A65536").End(xlUp).Row + 1
If xRow < 19 Then xRow = 19
Sht1.Range("A" & xRow & ":C" & xRow).Value = Sht1.Range("A18:C18").Value
Sht1.Range("E" & xRow & ":E" & xRow).Value = Sht1.Range("E18:E18").Value
Sht1.Range("G" & xRow & ":K" & xRow).Value = Sht1.Range("G18:K18").Value
Sht1.Range("M" & xRow & ":O" & xRow).Value = Sht1.Range("M18:O18").Value
複製代碼
請教 像這樣選擇性紀錄的程式碼,
有比較精簡的寫法嗎?
另外我每天5個小時,會漏記錄一兩筆,跟我寫的內容有關係嗎?
還是說多多少少,無法避免。
作者:
bobomi
時間:
2015-7-24 21:57
你接收的商品為何?
作者:
vic
時間:
2015-7-25 13:09
回復
2#
bobomi
紀錄看盤軟體回傳的DDE資料
每30秒紀錄一次
不漏的話,大約600筆
作者:
GBKEE
時間:
2015-7-25 14:24
本帖最後由 GBKEE 於 2015-7-25 14:29 編輯
回復
3#
vic
是這樣嗎?
試試看
Option Explicit
Sub Ex()
Dim Ar(), S(1 To 2), xRow As Long, E As Variant
Ar = Array("A:C", "E:E", "G:K", "M:O") '大約600筆的欄位字母
If Second(Time) Mod 30 = 0 Then
With Sht1
xRow = .Range("A65536").End(xlUp).Offset(1).Row
For Each E In Ar
S(1) = Replace(E, ":", xRow & ":") & xRow
S(2) = Replace(E, ":", 18 & ":") & 18
.Range(S(1)).Value = .Range(S(2)).Value
Next
End With
End If
' 陣列置入些欄位字母 , 可精簡下面的程式碼
'Sht1.Range("A" & xRow & ":C" & xRow).Value = Sht1.Range("A18:C18").Value
'Sht1.Range("E" & xRow & ":E" & xRow).Value = Sht1.Range("E18:E18").Value
'Sht1.Range("G" & xRow & ":K" & xRow).Value = Sht1.Range("G18:K18").Value
'Sht1.Range("M" & xRow & ":O" & xRow).Value = Sht1.Range("M18:O18").Value
'''大約600筆
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)