註冊
登錄
首頁
論壇版規
禁止列表
說明
地圖
數位書香
私人消息 (0)
公共消息 (0)
論壇任務 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
麻辣家族討論版版
»
Excel程式區
» 除錯
返回列表
下一主題
上一主題
發帖
除錯
n7822123
發短消息
加為好友
n7822123
(阿龍)
當前離線
UID
20045
帖子
406
主題
8
精華
0
積分
453
金錢
453
點名
0
作業系統
WINDOWS 7
軟體版本
2007
閱讀權限
20
性別
男
來自
台灣
在線時間
202 小時
註冊時間
2015-2-7
最後登錄
2021-7-31
暱稱:
阿龍
中學生
帖子
406
主題
8
精華
0
積分
453
點名
0
作業系統
WINDOWS 7
軟體版本
2007
閱讀權限
20
性別
男
來自
台灣
註冊時間
2015-2-7
最後登錄
2021-7-31
1
#
跳轉到
»
發表於 2018-11-1 00:24
|
顯示全部帖子
本帖最後由 n7822123 於 2018-11-1 00:36 編輯
回復
1#
藍天麗池
因為電腦找不到你要的儲存格!
.Offset(1).Cells(1, -1)=原來儲存格向下一格,向左2格
舉例
[C2].Offset(1).Cells(1, -1).Select '=A3
但是當原來儲存格式第2欄時,要讓程式找左邊2欄的儲存格,電腦會找不到,就會跳出錯誤!
舉例如下,找不到B欄再往左2欄的欄位,所以發生錯誤
[B2].Offset(1).Cells(1, -1).Select '=?3
因為你的資料從
第2欄
就有開始有值,所以"
.Offset(1).Cells(1, -1)
"就會產生錯誤
還有邏輯運算是從後面往前算
舉例來說
MsgBox True Or False And False '=MsgBox True Or (False And False)=True
而不是
MsgBox (True Or False) And False '=False
若不想搞清楚哪個先運算的話,最好加上
括弧
,比較不會出錯
修改如下:
If (.Row = 2 Or .Row > 2) And .Value <> Rng.Value Then
.Row = 2 Or .Row > 2 可簡化為 .Row>=2
你的程式很多地方可以簡化
.Offset(1).Cells(1, -1).Resize(, 1) = Rng.Cells(, -1).Resize(, 1).Value
上一行等效於下一行(只有一個儲存格,不需要Resize)
.offset(1,-2)=Rng(,-1).value
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助
TOP
n7822123
發短消息
加為好友
n7822123
(阿龍)
當前離線
UID
20045
帖子
406
主題
8
精華
0
積分
453
金錢
453
點名
0
作業系統
WINDOWS 7
軟體版本
2007
閱讀權限
20
性別
男
來自
台灣
在線時間
202 小時
註冊時間
2015-2-7
最後登錄
2021-7-31
暱稱:
阿龍
中學生
帖子
406
主題
8
精華
0
積分
453
點名
0
作業系統
WINDOWS 7
軟體版本
2007
閱讀權限
20
性別
男
來自
台灣
註冊時間
2015-2-7
最後登錄
2021-7-31
2
#
發表於 2018-11-1 00:53
|
顯示全部帖子
回復
3#
n7822123
For cts = 2 To 101
Set Rng = Cells(2, cts)
...
...
補充,你的cts從2開始
所以 "Rng(, -1).Value",要找到往左兩欄的值,也是不可能的
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助
TOP
n7822123
發短消息
加為好友
n7822123
(阿龍)
當前離線
UID
20045
帖子
406
主題
8
精華
0
積分
453
金錢
453
點名
0
作業系統
WINDOWS 7
軟體版本
2007
閱讀權限
20
性別
男
來自
台灣
在線時間
202 小時
註冊時間
2015-2-7
最後登錄
2021-7-31
暱稱:
阿龍
中學生
帖子
406
主題
8
精華
0
積分
453
點名
0
作業系統
WINDOWS 7
軟體版本
2007
閱讀權限
20
性別
男
來自
台灣
註冊時間
2015-2-7
最後登錄
2021-7-31
3
#
發表於 2018-11-5 02:47
|
顯示全部帖子
本帖最後由 n7822123 於 2018-11-5 02:56 編輯
回復
9#
faye59
咳咳......其實我也有地方沒講清楚,
為了避免誤導別人,我還是自我糾正一下,
邏輯運算是從後面往前算
這句話只有For該運算式
實際上是 "And" 會比 "Or" 先算
所以該式會變成後面的先算
如果想要Or先算,需要加上括弧
看了下圖就明瞭了
下載
(26.51 KB)
2018-11-5 02:47
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助
TOP
靜思自在 :
知識要用心體會,才能變成自己的智慧。
返回列表
下一主題
上一主題
Excelㄧ般區
My SQL
一般電腦軟體討論
Office不分區
ORACLE
EXCEL專屬討論區
Excelㄧ般區
Excel程式區
進階應用專區
OFFICE 系列
Word
PowerPoint
Access
Office不分區
程式語言
VB 與 VB.Net
C 與 C#
Java 與 J#
程式設計不分區
資料庫
ORACLE
My SQL
MS SQL
網頁設計
ASP 與 ASP.NET
PHP
PHP+MySQL 入門實作
JavaScript
FLASH / ActionScript
HTM/ HTML/ CSS
網頁設計不分區
電腦與作業系統
電腦各種硬體討論
一般電腦軟體討論
論壇事務
管理公告
投訴反映
新手測試
愛 • 生活
公益佈告欄
生活與感動
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]
申請友情鏈接
Facebook粉絲