[問題] 未設定物件變數或 With 區塊變數
(若是和其他不同軟體互動之問題 請記得一併填寫)
軟體:excel
版本:2019
Public Function test1(PROD As String) As Integer
Dim wsFunc As WorksheetFunction: Set wsFunc =
Application.WorksheetFunction
Dim ws As Worksheet: Set ws = Sheets("Sheets1")
Dim rngLook As Range: Set rngLook = ws.Range("A1:B10")
Dim target_name As String
Dim value As String
On Error Resume Next
value = wsFunc.VLookup(PROD, rngLook, 2, False)
test1 = value
End Function
一直卡在黃字 陣列索引超出範圍
我是想寫一個變數帶入
如果是 蘋果 值=10
香蕉 值=20
前面會抓一個字串
fruit = 香蕉
Dim retVal As Integer
retVal = test1("fruit")
不知道該怎麼改
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.142.50.83 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1608304339.A.B7C.html
→
12/18 23:18,
3年前
, 1F
12/18 23:18, 1F
→
12/18 23:22,
3年前
, 2F
12/18 23:22, 2F
→
12/18 23:24,
3年前
, 3F
12/18 23:24, 3F
→
12/18 23:24,
3年前
, 4F
12/18 23:24, 4F
→
12/18 23:25,
3年前
, 5F
12/18 23:25, 5F
→
12/18 23:25,
3年前
, 6F
12/18 23:25, 6F
→
12/18 23:25,
3年前
, 7F
12/18 23:25, 7F
→
12/18 23:26,
3年前
, 8F
12/18 23:26, 8F
→
12/18 23:26,
3年前
, 9F
12/18 23:26, 9F
→
12/18 23:26,
3年前
, 10F
12/18 23:26, 10F
→
12/18 23:27,
3年前
, 11F
12/18 23:27, 11F
→
12/18 23:27,
3年前
, 12F
12/18 23:27, 12F
→
12/18 23:28,
3年前
, 13F
12/18 23:28, 13F
應該不是出在工作表名稱的問題
這行如果直接打入字串
retVal = test1("香蕉")
retVal 就會跑出 20 表示有對照到表格
但是
retVal = test1("fruit") 就會錯誤
※ 編輯: hmsboy (220.142.50.83 臺灣), 12/18/2020 23:30:29
→
12/18 23:32,
3年前
, 14F
12/18 23:32, 14F
→
12/18 23:48,
3年前
, 15F
12/18 23:48, 15F
→
12/18 23:48,
3年前
, 16F
12/18 23:48, 16F
→
12/18 23:48,
3年前
, 17F
12/18 23:48, 17F
→
12/18 23:48,
3年前
, 18F
12/18 23:48, 18F
※ 編輯: hmsboy (220.142.50.83 臺灣), 12/18/2020 23:53:09
→
12/18 23:55,
3年前
, 19F
12/18 23:55, 19F
→
12/18 23:58,
3年前
, 20F
12/18 23:58, 20F
→
12/18 23:58,
3年前
, 21F
12/18 23:58, 21F
→
12/19 00:04,
3年前
, 22F
12/19 00:04, 22F
一開始以為
跑 fruit = "香蕉"
fruit 有抓到 香蕉 字串
去改test1("fruit")這段 改來改去
像是 test1(CStr(fruit))
都無法再跑下去
關鍵應該是缺少 宣告字串
Dim fruit As String
※ 編輯: hmsboy (220.142.50.83 臺灣), 12/19/2020 00:12:41
→
12/19 00:15,
3年前
, 23F
12/19 00:15, 23F
→
12/19 00:15,
3年前
, 24F
12/19 00:15, 24F
→
12/19 00:15,
3年前
, 25F
12/19 00:15, 25F
文件有點肥大 我家工程師跑路 我半桶的
能私下傳給你看嗎?
※ 編輯: hmsboy (220.142.50.83 臺灣), 12/19/2020 00:30:24
→
12/19 00:36,
3年前
, 26F
12/19 00:36, 26F
→
12/19 00:36,
3年前
, 27F
12/19 00:36, 27F
https://reurl.cc/n0ak1n
https://reurl.cc/ygd2r6
工作表_入庫記錄 > 按鈕_庫存匯入>庫存明細.xlsx
※ 編輯: hmsboy (220.142.50.83 臺灣), 12/19/2020 00:53:33
→
12/19 00:59,
3年前
, 28F
12/19 00:59, 28F
→
12/19 00:59,
3年前
, 29F
12/19 00:59, 29F
→
12/19 00:59,
3年前
, 30F
12/19 00:59, 30F
→
12/19 01:03,
3年前
, 31F
12/19 01:03, 31F
→
12/19 01:03,
3年前
, 32F
12/19 01:03, 32F
→
12/19 01:06,
3年前
, 33F
12/19 01:06, 33F
→
12/19 01:06,
3年前
, 34F
12/19 01:06, 34F
→
12/19 01:06,
3年前
, 35F
12/19 01:06, 35F
成功了
Dim ws As Worksheet: Set ws = Sheets("入庫記錄")
↓↓
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("入庫記錄")
為什麼差這個就跑不動? 他迷路是跑去 庫存明細.xlsx 的意思嗎
※ 編輯: hmsboy (220.142.50.83 臺灣), 12/19/2020 01:16:50
睡前再問一個 麻煩你了
同樣是主檔 工作表 "匯單"
如果第二列 沒資料空白 "樞紐" 抓不到資料 要怎麼解決
※ 編輯: hmsboy (220.142.50.83 臺灣), 12/19/2020 01:21:31
→
12/19 01:29,
3年前
, 36F
12/19 01:29, 36F
→
12/19 01:29,
3年前
, 37F
12/19 01:29, 37F
這個有了解 因為沒有指定 ThisWorkbook
開了 庫存.xlsx 導致程序上 是跑在 庫存.xlsx
※ 編輯: hmsboy (220.142.50.83 臺灣), 12/19/2020 01:41:39
題外話 我家工程師跑路
留了很有趣的東西
Public Const limitD As Date = "2020/12/15"
Public Function login()
login = IIf(Date >= limitD, False, True)
End Function
然後 每一個 Sub xxx() 下面寫上
If login() = False Then Exit Sub
設定使用期限 很幼稚
※ 編輯: hmsboy (220.142.50.83 臺灣), 12/19/2020 01:46:08
→
12/19 01:51,
3年前
, 38F
12/19 01:51, 38F
→
12/19 01:51,
3年前
, 39F
12/19 01:51, 39F
→
12/19 01:51,
3年前
, 40F
12/19 01:51, 40F
→
12/19 01:51,
3年前
, 41F
12/19 01:51, 41F
→
12/19 01:51,
3年前
, 42F
12/19 01:51, 42F
→
12/19 01:51,
3年前
, 43F
12/19 01:51, 43F
→
12/19 01:51,
3年前
, 44F
12/19 01:51, 44F
B2~B17 每次會隨機產生空白或日期 但至少有一個是日期
我寫成這樣
=OFFSET(匯單!B2,SMALL(IF(匯單!B2:B17>0,ROW(匯單!B2:B17)-2,""),ROW(1:1)),)
只要B2~B17中間有日期 抓日期資料
※ 編輯: hmsboy (59.120.114.65 臺灣), 12/19/2020 14:59:27