返回列表 上一主題 發帖

[發問] 奇怪的巨集??

[發問] 奇怪的巨集??

本帖最後由 t8899 於 2013-11-1 20:10 編輯

1.15秒自動執行一次,沒問題
但當打開A檔案,視窗停留在A檔案,則所得的數字是不對的???
2.單用Sheets("Sheet1").Select 或  With Sheets("Sheet1")
執行會寫進A檔案的工作表裡???
Sub Macro1()
Dim ah As Workbook
Set ah = ActiveWorkbook
'   Sheets("Sheet1").Select
'   With Sheets("Sheet1")
Workbooks("book2.xls").Sheets("Sheet1").Range("a1").Value = Now
t = [TEXT(A1,"hh:mm")+LOOKUP(--TEXT(A1,"s"),{0,15,30,45})/86400]
Workbooks("book2.xls").Sheets("Sheet1").Range("a65536").End(xlUp).Offset(1).Value = Format(t, "hh:mm:ss")
' End With
ah.Activate
End Sub
Book2.rar (9.06 KB)

回復 11# t8899
vba的寫法不是死的,只要達成想法的就可以了
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 10# GBKEE
謝謝
昨晚想了另一個方法如下:
儲存格B1=TEXT(FLOOR(A1,"0:00:15"),"hh:mm:SS")
Sub Macro1()
Dim ah As Workbook
Set ah = ActiveWorkbook
Workbooks("book2.xls").Sheets("Sheet1").Range("a1").Value = Now  
Workbooks("book2.xls").Sheets("Sheet1").Range("a65536").End(xlUp).Offset(1).Value =Workbooks("book2.xls").Sheets("Sheet1").Range("B1").Value
ah.Activate
END SUB

TOP

回復 9# t8899
VBA函數   NOW
工作表函數 NOW()
  1. t = [TEXT(NOW(),"hh:mm")+LOOKUP(--TEXT(NOW(),"s"),{0,15,30,45})/86400]
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 t8899 於 2013-11-1 22:13 編輯

回復 8# GBKEE

     
    't = [TEXT(A1,"hh:mm")+LOOKUP(--TEXT(A1,"s"),{0,15,30,45})/86400]
        ' 這裡的A1是作用中活頁簿ActiveWorkbook(當打開A檔案)的ActiveSheet的 A1     

單純能否只改這句來解決呢??
這句裡的A1 無法指定到  Workbooks("book2.xls").Sheets("Sheet1")  裡??
t = [TEXT(NOW,"hh:mm")+LOOKUP(--TEXT(NOW,"s"),{0,15,30,45})/86400]

TOP

回復 7# t8899
  1. Sub Macro1()
  2.     Dim t, Ar()
  3.     Ar = Array(60, 45, 30, 15)
  4.     With Workbooks("book2.xls").Sheets("Sheet1")
  5.         .Range("a1").Value = Now
  6.         t = Val(Format(.Range("a1"), "s"))
  7.         t = Application.Match(t, Ar, -1)
  8.         t = Application.Text(.[A1], "hh:mm:") & Ar(t - 1)
  9.         '*************************************************************
  10.         't = [TEXT(A1,"hh:mm")+LOOKUP(--TEXT(A1,"s"),{0,15,30,45})/86400]
  11.         ' 這裡的A1是作用中活頁簿ActiveWorkbook(當打開A檔案)的ActiveSheet的 A1
  12.        '************************************************************
  13.         .Range("a65536").End(xlUp).Offset(1).Value = Format(t, "hh:mm:ss")
  14.     End With
  15. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2013-11-1 16:55 編輯

回復 3# t8899
  1. Sub Macro1()
  2. If ActiveWindow.Caption <> "Book2.xls" Then
  3. Dim ah As Workbook
  4. Set ah = ActiveWorkbook         '這裡是 Workbook物件
  5. 'Dim ah As Window                '變數物件要一致
  6. '******************這裡錯誤嗎????   **************
  7. Set ah = ActiveWindow           '這裡是 Window物件
  8. '*********************************************
  9. End If
  10. MsgBox "test"
  11. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2013-11-1 16:55 編輯

回復 4# sunnyso

請詳看VBA的說明

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 2# GBKEE

請問超版 .caption 和 .name 有何區別?
謝
ss

TOP

請問此巨集錯誤如何修改??

本帖最後由 t8899 於 2013-11-1 15:17 編輯

型態不符合  附檔 Book3.rar (7.9 KB)

在開另一檔案後執行會錯誤 ,不開則不會???
Public Runtime
Sub a123()
If Range("i1").Value <> 1 Then
On Error Resume Next
Application.OnTime EarliestTime:=TimeValue(Runtime), _
    Procedure:="a123", Schedule:=False
  Exit Sub
On Error GoTo 0
End If
Macro1
If Range("k14") = 4 Then mytime = "00:00:15"
Runtime = Now + TimeValue(mytime)
Application.OnTime Runtime, "Sheet1.a123"
End Sub

TOP

        靜思自在 : 信心、毅力、勇氣三者具備,則天下沒有做不成的事。
返回列表 上一主題