返回列表 上一主題 發帖

[發問] 此巨集為何錯??

本帖最後由 t8899 於 2013-8-14 07:14 編輯
回復  t8899
晤...
若是會有小數出現的數值,
那就要把 CLng(  用 CSng( 來取代就可以了.
luhpro 發表於 2013-8-13 22:30

模組裡有一個耀輸1, 程式碼為Public sz
是否錯誤??
應該為 Public sz as ???
耀輸1 這名字好像不能改,改了程式會錯誤?

TOP

c_c_lai 發表於 2013-8-14 07:52

為什麼 只有 Public sz 語法錯誤還能運作??

TOP

本帖最後由 t8899 於 2013-8-14 09:32 編輯
宣告 Public sz  語法並沒錯誤,它因事先無明確型態宣告,
故會在後續的應用上,根據其相對應之型態而作 ...
c_c_lai 發表於 2013-8-14 08:56

我把漲跟跌改為分開,一開檔 falg=true 的狀態 出現 錯誤
把錯誤所在行後面的 & sz(i, 1) & "===>" & sz1(i, 1) 刪掉 就正常
為何錯誤?為何不錯前面那一行?

TOP

本帖最後由 t8899 於 2013-8-14 10:39 編輯
回復  t8899
c_c_lai 發表於 2013-8-14 09:57


我的是1 ,我把它改為2 錯誤還是一樣
型態不符合

TOP

& sz(i, 1) & "===>" & sz1(i, 1) 改成
& CSng(sz(i, 1)) & "===>" &CSng( sz1(i, 1)) 呢?
c_c_lai 發表於 2013-8-14 10:41


這樣OK了!謝謝
(sz(i, 1),CSng(sz(i, 1)差異是??
前一行要一起改嗎??
為何不會錯在前一行??

TOP

回復  t8899
因為我沒有你目前測試的檔案,
故無法一一推敲你的數據過程,
你是用 CStr() 還是 CSng()  ...
c_c_lai 發表於 2013-8-14 10:59

csng...............

TOP

回復  t8899
晤...
若是會有小數出現的數值,
那就要把 CLng(  用 CSng( 來取代就可以了.
luhpro 發表於 2013-8-13 22:30


如果輸出再增加到 sheet2 工作表的A1順序貼上
如果A1非空白, 則B1 ....C1............D1
語法是?

TOP

回復  t8899
luhpro 發表於 2013-8-14 23:05


謝謝您近日來熱心指導!

TOP

本帖最後由 t8899 於 2013-8-15 21:09 編輯
回復  t8899
luhpro 發表於 2013-8-14 23:05

最後一個問題
在最後輸出已達條件的對話盒後
之前符合條件的部份
將 zz之值拷到  ZZ.Offset(, 26) (已達條件的,再重新繞回來,才不會一直重覆出現)
----------------------
     Dim sStr$
Dim ZZ As Range
      sStr = ""
       sStr2 = ""
   For Each ZZ In Range("c2:c111")
    If Not IsError(ZZ) Then
         If Range("Q26").Value = 1 And flag = True Then
      M = Round(ZZ - ZZ.Offset(, 26), 2)
If M >= ZZ.Offset(, 2) Then
   If sStr <> "" Then sStr = sStr & Chr(10)
sStr = sStr & "" & Cells(ZZ.Row, 2).Value & "=====> " & Round(ZZ - ZZ.Offset(, 26), 2)
                  End If
If M <= -ZZ.Offset(, 2) Then
If sStr2 <> "" Then sStr2 = sStr2 & Chr(10)
  sStr2 = sStr2 & "" & Cells(ZZ.Row, 2).Value & "=====> " & Round(ZZ - ZZ.Offset(, 26), 2)
                  End If
    End If
    End If
       Next
  If sStr <> "" Then
  CreateObject("Wscript.shell").Popup sStr, 4, "Auto Closed MsgBox", 64
     End If
     If sStr2 <> "" Then
  CreateObject("Wscript.shell").Popup sStr2, 4, "Auto Closed MsgBox", 64
      End If

TOP

回復  t8899
因為漲跌兩邊都要執行,
所以會加兩行 :另外,建議你可以參考類似上面這樣有做縮排處理的程式 ...
luhpro 發表於 2013-8-15 21:47


訊息無法一次出現???會一隻一隻出現??

TOP

        靜思自在 : 多做多得。少做多失。
返回列表 上一主題