返回列表 上一主題 發帖

[發問] 下個月新檔

回復 2# luhpro
lRow = .Cells(Rows.Count, 1).End(XlUp).Row    ' 1 表取得 A 欄最末有資料列號
這個檔我研究了很多天了,還是寫不出後面的程式,不知道如何套用到

2. 自動偵測商品.xlsx的列數(商品.xlsx會有最新的產品資料,而且列數會有增加及減少的可能性)
因為它偵測到 "飛比_暖暖.湖口.xlsx/ BF-QOO.xlsx"的列數後還要與來源檔 商品.xlsx比對,列數是多還是少?
依"商品.xlsx"的列數為準,
多的列數.....把多出來的刪除
少的列數.....把不足的列數新增
最後把"商品.xlsx" 的這三欄 "料號        入數        商品名稱"的值(不要格式)
copy到 目的資料夾的檔案(目前是 "飛比_暖暖.湖口.xlsx/ BF-QOO.xlsx")

TOP

本帖最後由 luhpro 於 2019-11-29 21:26 編輯
Dear,
...
1. 自動偵測商品.xlsx是否已開啟,已開則忽略,未開則打開...
PJChen 發表於 2019-11-26 00:04

先解決你的第一個問題,
在你發的那串 : [發問] 自動套表 5# 第 5 篇裡,
我的回文裡有一段就是在處理你這個需求 :
  1. sPath = ThisWorkbook.Path ' 如果要指定目錄, 只要改成該目錄即可, 如 sPath = "D:"
  2.    sFlName = "商品.xlsx"
  3.    bMatch = False ' 檢查 '商品.xlsx' 檔案是否已開啟
  4.   For iI = 1 To Workbooks.Count
  5.      If Workbooks(iI).Name = sFlName Then
  6.        bMatch = True
  7.        Exit For
  8.      End If
  9.    Next iI
  10.    If bMatch Then
  11.      Set wsTar = Workbooks(sFlName).Sheets("飛比商品")  ' 檔案已開啟, 直接取用
  12.      wsTar.Activate
  13.    Else
  14.      Set wsTar = Workbooks.Open(Filename:=sPath & "\" & sFlName).Sheets("飛比商品")  ' 檔案尚未開啟, 開啟後取用
  15.    End If
  16.    With wsTar
  17.   ....
  18.   End With
複製代碼
取用時只要在 With wsTar  與 End With 兩行間用 . 開頭的指令即可,
例如 :    .[A5] = 16   或   .Cells(3,5)=2    ...等

2. 自動偵測商品.xlsx的列數(商品.xlsx會有最新的產品資料,而且列數會有增加及減少的可能性)

最末列號可以用類似
  1.   lRow = .Cells(Rows.Count, 1).End(XlUp).Row    ' 1 表取得 A 欄最末有資料列號  
複製代碼
取得
有事先下了,
其它的若我有時間上來再互相討論.

TOP

        靜思自在 : 唯其尊重自己的人,才更勇於縮小自己。
返回列表 上一主題