返回列表 上一主題 發帖

[發問] 兩表比對後將結果輸出

[發問] 兩表比對後將結果輸出

各位前輩好,
想以字典方式比對兩表後將結果輸出,
但寫一半又卡住了...請問有人可以提供解法/思維嗎,
需求:
1.試算表A欄比對參數表HKACC及ACCTE為S,將ACC結果輸出至科餘表。
2.試算表有期末借方/貸方餘額,對應參數表ACCDN為DR則數字為正;若為CR則數字為負。
3.科餘表C欄=參數表G欄。
若不清楚請詳附檔,麻煩大家了!

科餘轉換(TEXT).zip (698.12 KB)

回復 30# 准提部林
准大
還能把程式碼再縮短,
這思維跟邏輯真的學不來....
太感謝你了。

TOP

'If UCase(xD(T)(1)) = "DR" Then
'    If Arr(i, 10) > Arr(i, 11) Then
'        Brr(M, 7) = Brr(M, 7) + Arr(i, 10)
'    Else
'        Brr(M, 7) = Brr(M, 7) + Arr(i, 11)
'    End If
' ElseIf UCase(xD(T)(1)) = "CR" Then
'    If Arr(i, 10) > Arr(i, 11) Then
'        Brr(M, 7) = Brr(M, 7) - Arr(i, 10)
'    Else
'        Brr(M, 7) = Brr(M, 7) - Arr(i, 11)
'    End If
' End If


>>>>>
If UCase(xD(T)(1)) = "DR" Then S = 1 Else S = -1
If Arr(i, 10) > Arr(i, 11) Then C = 10 Else C = 11
Brr(M, 7) = Brr(M, 7) + Arr(i, C) * S

TOP

回復 28# shuo1125
慶大
太感謝了..還將連結告知,
這論壇不但聚集很多高手,還能毫不保留的指導,
真心感激。

TOP

回復 26# 准提部林
准大
連准大都出現了...你給予我很大的啟發,
但你的思路及邏輯實在太變化莫測,
對我這新手來說難度真的太高...
謝謝您不吝的解說。

TOP

本帖最後由 singo1232001 於 2022-6-3 18:41 編輯

回復 25# shuo1125





陣列貼回工作表
來源 台大ptt
https://www.ptt.cc/bbs/Visual_Basic/M.1485488105.A.DB6.html

教學 陣列概念視覺化v3.zip (10.35 KB)

TOP

粗淺的說
Dim Arr, Brr(), Crr(9,9)

(1)
Arr 是Variant, 可以賦于單一元素, 或儲存格範圍成一陣列, 或Redim為一個陣列
例:Arr=9, Arr="abc", Arr=range("A1:E9"), Redim Arr(1 to 9, 1 to 3)
   不管Arr已被賦于何種型態及內容, 其後仍可直接對其賦于其它型態及內容,
   當用 Arr = Crr, 也是可以接收其它"己定義且存在"的陣列,
  
   如果被定為陣列, 最後要釋放其佔用的記憶體時, 若用 Erase Arr, 則它還是陣列型態, 只是沒有大小,
   當然, 它還是可以再賦于任何內容, 如 Arr = Empty (初始化)
__它是紙漿, 可以製成任何所需, 回收時變成紙漿

(2)
Brr(), 為陣列, 只是還沒定大小, 而且只能用于陣列, 就像一塊地已規劃蓋房子, 還沒定出蓋幾層及隔間, 除了房子不可挪作它用,
其間可以在任何時候重新定義其大小及維度, 如 Redim Brr(9),  每次重定義, 前身資料即消失,
若要保留前資料, 且擴展空間, 可用 ReDim Preserve , 但只可以改變最後一個維度的上標界,而不能改變維數。
可用 Erase Brr 釋放資料, 但後續要用, 得重新定義!!
__它是一張紙, 無法裝東西, 可以折成任何型狀及大小去裝東西, 恢復時還是一張紙!!!

(3)
Crr(9, 9) ,為固定大小的陣列, 這應不需說明, Erase Crr 釋放資料, 但只是清空內容, 大小還是一樣
__它是個紙箱, 可裝固定大小的東西, 倒掉全部再繼續用

TOP

回復 23# singo1232001
慶大
你舉的例子陣列說明得很詳盡...
連我這一竅不通的都能大致上理解,
謝謝您抽空回復!

TOP

回復 22# lpk187
lpk大
大概了解了,因非相關科系所以對程式語言很陌生...
故在解讀上可能誤解,謝謝您還特意關注回復。

TOP

本帖最後由 singo1232001 於 2022-6-2 16:00 編輯

回復 21# shuo1125

用魔獸世界遊戲 包包 的概念 包包內可放任何東西     包括新的包包
   dim  br 是 1格包包
   redim  br(3,3 ) 是16格包包 是4x4(像真實遊戲顯示那樣)
   dim  br(15) 也是 16格包包  包包是一條從上到下1234567....16格
   
   ' dim  br(3) : dim ar(3) : for i = 0 to 3 : br(i)=ar  : next     
    br(3)(3) 也是4格包包內放入4格包包  也是4x4  16格


用檔案總管資料夾當概念 資料夾內可以放任何東西  包括新資料夾
  dim br 是一個資料夾 只能放一樣
  redim br(3,3) 可以放16樣 4x4(類似 大圖示的瀏覽方式)  
  dim br(15)  資料夾內可以讓你放16個 (類似 從上到下 詳細清單模式)

  一樣可以br(3)(3)

TOP

        靜思自在 : 虛空有盡.我願無窮,發願容易行願難。
返回列表 上一主題