- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2025-7-5
|
本帖最後由 luhpro 於 2019-11-29 21:26 編輯
Dear,
...
1. 自動偵測商品.xlsx是否已開啟,已開則忽略,未開則打開...
PJChen 發表於 2019-11-26 00:04 
先解決你的第一個問題,
在你發的那串 : [發問] 自動套表 5# 第 5 篇裡,
我的回文裡有一段就是在處理你這個需求 :- sPath = ThisWorkbook.Path ' 如果要指定目錄, 只要改成該目錄即可, 如 sPath = "D:"
- sFlName = "商品.xlsx"
- bMatch = False ' 檢查 '商品.xlsx' 檔案是否已開啟
- For iI = 1 To Workbooks.Count
- If Workbooks(iI).Name = sFlName Then
- bMatch = True
- Exit For
- End If
- Next iI
- If bMatch Then
- Set wsTar = Workbooks(sFlName).Sheets("飛比商品") ' 檔案已開啟, 直接取用
- wsTar.Activate
- Else
- Set wsTar = Workbooks.Open(Filename:=sPath & "\" & sFlName).Sheets("飛比商品") ' 檔案尚未開啟, 開啟後取用
- End If
- With wsTar
- ....
- End With
複製代碼 取用時只要在 With wsTar 與 End With 兩行間用 . 開頭的指令即可,
例如 : .[A5] = 16 或 .Cells(3,5)=2 ...等
2. 自動偵測商品.xlsx的列數(商品.xlsx會有最新的產品資料,而且列數會有增加及減少的可能性)
最末列號可以用類似- lRow = .Cells(Rows.Count, 1).End(XlUp).Row ' 1 表取得 A 欄最末有資料列號
複製代碼 取得
有事先下了,
其它的若我有時間上來再互相討論. |
|