Board logo

標題: [發問] 更新商品資料 [打印本頁]

作者: PJChen    時間: 2021-7-5 18:12     標題: 更新商品資料

大大好,
請問我修改了准大之前寫的程式,用來更新商品資料,結果:
a) 可以更新資料,但無法將多餘列數刪除(有問題)
b) 可以更新資料,不足的列數可自動補足(沒問題)

請幫忙看下,是否程式有哪裡沒改對?
另外A庫存表,BF4=SUM($G4:$H4)-SUMPRODUCT(($AA$3:$BC$3="合計")*($B$4:$B$80=$B4)*($AA$4:$BC$80))
這個函數的寫法,當更新資料列數比原來的多時,需要手動修改,請問是否有其他寫法?
[attach]33513[/attach]
作者: 准提部林    時間: 2021-7-6 14:14

xrow = xSh.Cells(Rows.Count, 1).End(xlUp).Row - 3

xrow = xSh.Cells(Rows.Count, 2).End(xlUp).Row - 3

檢測已使用行數, 改用B列~~
作者: 准提部林    時間: 2021-7-6 14:25

公式重新改為實際行數:
If xrow > R Then xSh.Range("A" & R + 4 & ":A" & xrow + 4).EntireRow.Delete '刪除多餘行
底下加這一行:
xSh.[BF4].Resize(R).Formula = _
       Replace("=SUM($G4:$H4)-SUMPRODUCT(($AA$3:$BC$3=""合計"")*($B$4:$B$行數=$B4)*($AA$4:$BC$列數))", "行數", R + 3)
作者: PJChen    時間: 2021-7-6 16:42

回復 3# 准提部林

准大好,
Sheets("1" & "")改為以下,現在沒執行沒問題了,
xrow = xSh.Cells(Rows.Count, 2).End(xlUp).Row - 3

但Sheets("整月統計" & "")改成以下,運作仍不正常,就算改Count, 3,也是無法刪除多餘行數
drow = xSh.Cells(Rows.Count, 2).End(xlUp).Row - 3

請問以下的數字,不是都屬"列數"?為何$B$4:$B$行數,是用"行數"?
Replace("=SUM($G4:$H4)-SUMPRODUCT(($AA$3:$BC$3=""合計"")*($B$4:$B$行數=$B4)*($AA$4:$BC$列數))", "行數", R + 3)
作者: 准提部林    時間: 2021-7-6 16:58

回復 4# PJChen


"行數" 是暫時性文字, 是用來取代成實際列數用的,
也可用別的文字, 如"台北"
作者: PJChen    時間: 2021-7-6 19:57

回復 3# 准提部林
准大,
程式一再測試,都沒有再成功過...
Sheets("1" & "")卡在這,說是定義錯誤
    xSh.[BF4].Resize(R).Formula = _
       Replace("=SUM($G4:$H4)-SUMPRODUCT(($AA$3:$BC$3=""合計"")*($B$4:$B$行數=$B4)*($AA$4:$BC$列數))", "行數", R + 3)
  
Sheets("整月統計" & "")改成以下,運作仍不正常,就算改Count, 3,也是無法刪除多餘行數
drow = xSh.Cells(Rows.Count, 2).End(xlUp).Row - 3
作者: 准提部林    時間: 2021-7-6 20:43

程式是放在"商品"檔案, 又要執行開啟自己的動作,
FN = "商品.xls"
On Error Resume Next: Set xB = Workbooks(FN): On Error GoTo 0
If xB Is Nothing Then Set xB = Workbooks.Open(PH & FN)

其它看來都亂了~~
從程式去判斷需求, 太累!!!
作者: PJChen    時間: 2021-7-6 21:20

回復 7# 准提部林

不好意思哦....准大,
PO上來這裡的是測試檔,我把程式放在 商品.xlsm,所以副檔名是沒錯的,
FN = "商品.xlsm"
而程式真的有點奇怪,有時可刪除多餘行數,有時又不靈,我也測試到有點Y達了!
目前估且當成它可以自動刪除多餘行數,不過您後來寫的,就真的卡住了,說是定義錯誤!
請問"列數"沒有任何宣告的情形下,會不會無法自動抓到列數?
Sheets("1" & "")
    xSh.[BF4].Resize(R).Formula = _
       Replace("=SUM($G4:$H4)-SUMPRODUCT(($AA$3:$BC$3=""合計"")*($B$4:$B$行數=$B4)*($AA$4:$BC$列數))", "行數", R + 3)
作者: 准提部林    時間: 2021-7-7 10:32

已修好:
[attach]33524[/attach]
作者: PJChen    時間: 2021-7-7 22:47

回復 9# 准提部林
謝謝准大,執行沒問題了!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)