Board logo

標題: [發問] 註解轉表格試算的問題 [打印本頁]

作者: OsakaKYC    時間: 2015-5-18 12:12     標題: 註解轉表格試算的問題

原本POST 在"EXCEL 一般區"把問題移植過來,很抱歉:L

----------------------------------------------------------

各位前輩好

我有個問題請教:
我目前工作有使用EXCEL 做產品的記錄,因為每次使用的零件不一定,也為了欄位美觀
所以會在"成本欄"使用"註解"來登記使用的零件(成本欄是空的)

但是在計算使用成本,都是一個一個把註解內容複製到分頁,人工計算各成本,再加總總成本再填回"成本欄"

我有找到程式讓註解內容轉成儲存格,但是會轉成同一儲存格,還是無法EXCEL試算

想詢問前輩有沒有方法,能將上述紅字部分讓EXCEL 自動去執行的方式

謝謝~
----------------------------------------------------------
我將目前處理的狀態,表列如下,再煩請幫忙確認

這是要將註解拉出來的範例,實際上有許多欄位
範例1.jpg
[attach]20968[/attach]
目前找到並修改的程式如下
1. 先建立一新的工作表"試算"
2.將上圖註解,拉出到"試算"工作表
但是會排成一長條
[attach]20969[/attach]
[attach]20970[/attach]

但是希望是下述模式,因為有的是沒有註解的,
希望能照原本欄位方式顯示
[attach]20971[/attach]

-------------------------------------------------

拉出後的狀況
因為註解有一些不必要的文字,想重新整理,
例如
1. 有"ASUS:" 字樣
2. 有的"*"有空格,有的沒有
3. 有的有",",有的沒有
但是用錄製巨集,使用"取代"功能,再將程式碼COPY過來,卻不能用
[attach]20969[/attach]

其實主要是想依據為相同序號的Consumable Parts & Repair Parts 註解中所記錄的資料,
依據成本欄位的金額(目前用VLOOKUP)
試算完各自的總費用再回填至原本註解的欄位


因為公司沒有使用系統,又需花很多人力去做資料整理,想做有沒有快速的辦法
煩請前輩高手幫幫忙
感恩


下面附檔件,是EXCEL 含上述巨集檔,請前輩們幫忙看一下,謝謝~
[attach]20972[/attach]
作者: GBKEE    時間: 2015-5-18 16:02

回復 1# OsakaKYC
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim D As Object, S As Variant, i As Integer
  4.     Dim xSum As Single, E As Range, Msg As String
  5.     Dim 料號 As String
  6.     Set D = CreateObject("scripting.dictionary")    '字典物件
  7.     With Sheets("成本")
  8.         i = 2
  9.         Do While .Cells(i, "B") <> ""               '料號欄
  10.             D(Trim(.Cells(i, "B"))) = .Cells(i, "C").Value  '料號的成本
  11.             i = i + 1
  12.         Loop
  13.     End With
  14.     For Each E In Sheets("2014年維修明細").UsedRange.Columns("B:C").Cells
  15.         If E.NoteText <> "" Then
  16.             xSum = 0
  17.             S = Split(Trim(E.NoteText), vbLf)
  18.             For i = 1 To UBound(S)
  19.                 If Len(S(i)) > 0 Then
  20.                 料號 = Trim(Split(S(i), "*")(0))
  21.                     If D.EXISTS(料號) = False Then                      '料號不存在
  22.                         Msg = Msg & vbLf & Trim(Split(S(i), "*")(0))
  23.                     End If
  24.                     xSum = xSum + (D(料號) * Val(Split(S(i), "*")(1)))   '成本累計
  25.                 End If
  26.             Next
  27.             E = xSum
  28.         End If
  29.     Next
  30.     If Msg <> "" Then MsgBox Msg, , "料號不存在"
  31. End Sub
複製代碼

作者: OsakaKYC    時間: 2015-5-18 16:39

回復 2# GBKEE

感謝大大,您真的太厲害了
我試了一下,功能超正常

只有一個小小的問題,就是如果某一欄的註解中,藏有一些說明文字(不管中文或是英文字),就會出現"陣列索引超出範圍"
這部分有辦法解決嗎?

感恩
作者: OsakaKYC    時間: 2015-5-18 17:23

回復 2# GBKEE

請問
1.如果"成本"不在同一個檔案中,在其他的資料夾中也可以嗎?
2.有時候會出現"料號不存在",有時會出現"陣列索引超出範圍",這狀況是不一樣嗎?

抱歉,勞費心了,
感恩
作者: GBKEE    時間: 2015-5-19 05:43

回復 4# OsakaKYC
如果某一欄的註解中,藏有一些說明文字(不管中文或是英文字),就會出現"陣列索引超出範圍"
如何藏法給看看.
作者: OsakaKYC    時間: 2015-5-26 11:53

回復 5# GBKEE

版主大好,不好意思,國外出差一個禮拜才剛回來,沒有及時回覆很抱歉

下圖是跑巨集時會出現"陣列索引超出範圍"的狀況
跑到這欄位就會停止,但是刪除註解後功能就都正常
也能順利帶出"料號不存在"的訊息,確認是人為輸入錯誤導致
[attach]21034[/attach]

但現在比較麻煩的問題是"無法存檔"
當我選擇存檔時,會依序出現
[attach]21035[/attach]

這時我會改存".xlsm",則會繼續出現以下錯誤
[attach]21036[/attach]
[attach]21037[/attach]

最後只有".xlsx"能存,但是就不包括巨集
有試過不同電腦,情形是一樣的
我們使用的是"Office 2010"
不知該如何處理,再麻煩了
謝謝~
作者: GBKEE    時間: 2015-5-26 13:47

本帖最後由 GBKEE 於 2015-5-26 13:48 編輯

回復 6# OsakaKYC
無法存檔的錯誤,我只有2003版,尚請有2010版者測試看看.

出現"陣列索引超出範圍"的狀況,這錯誤可修改如下試試
  1. For Each E In Sheets("2014年維修明細").UsedRange.Columns("B:C").Cells
  2.         If E.NoteText <> "" Then
  3.             xSum = 0
  4.             S = Split(Trim(E.NoteText), vbLf)
  5.             For i = 1 To UBound(S)
  6.                 If Len(S(i)) > 0 Then
  7.                 料號 = Trim(Split(S(i), "*")(0))
  8.                     If D.EXISTS(料號) = False Then                      '料號不存在
  9.                         Msg = Msg & vbLf & Trim(Split(S(i), "*")(0))
  10.                     Else
  11.                         xSum = xSum + (D(料號) * Val(Split(S(i), "*")(1)))   '成本累計
  12.                     End If
  13.                 End If
  14.             Next
  15.             E = xSum
  16.         End If
  17.     Next
複製代碼

作者: OsakaKYC    時間: 2015-5-26 15:53

回復 7# GBKEE

版大感謝,所有的問題都解了

您的新程式運作沒有問題

另外,無法存檔的問題確定為我另外分頁中"圖片物件"太多導致

只要刪除圖片就好了

再三感謝您:loveliness:




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