返回列表 上一主題 發帖

[發問] 如何載入一檔案並判斷特定欄位做運算後產生一新檔案(內含舊檔與運算後之結果)

回復 11# GBKEE


    Hi 版大~

請問一下版大~~我還有兩點需要增加~但是小妹想了兩天還是用不出結果,可以幫忙看看嗎~謝謝~
請看上則留言14#

TOP

回復 16# GBKEE


    版大~~

我加上這段~但是除了"R" "BEAD"以外的東西都會消失不見 TEST_20141225.zip (18.9 KB)

------------------------------------------------------------------
                If Msg = "KV" Then
                    '在M欄位會出現KV的單位,需要*1000
                      M = Val(Cells(i, "M")) * 1000       'KV
                Msg = Val(Split(Cells(i, "M"), "/")(1)) * 0.6 > Cells(i, "Q")
------------------------------------------------------------------
"C" 項目運算部分
在M欄位會出現KV的單位,需要*1000

'IF(O1="C",IF(『擷取M1欄"/"後字元』*0.6>Q1,PASS,FAIL))

意即"/"後字元若是帶KV,需要*1000

EX. 若M欄值為1000PF/2KV->提取出2KV=2*1000
公式為
'IF(O1="C",IF(2*1000*0.6>Q1,PASS,FAIL))

以上是需求
-------------------------------------------------------------
然後發現有一個特殊狀況

"R"判斷 多出現了一個mx_c0603_hxx

這段我不會寫..還請版大撥空教學~~~拜託~~

    Case "R"
                Msg = Split(Cells(i, "P"), "_")   'Msg = P欄中用 "_" 字串分割傳回的陣列
                If UBound(Msg) = 0 Then           '陣列元素只有一個,P欄中沒有"_"的字元
                    Msg = Split(Cells(i, "P"), "_")(0)
                ElseIf UBound(Msg) > 0 Then        'P欄中有"_"的字元
                    Msg = Split(Cells(i, "P"), "_")(1)
                    If Mid(UCase(Msg), 1, 1) = "H" Then
                      '"r0603_hxx"(xx是變數) : r+後四碼字串_hxx
                        Msg = Split(Cells(i, "P"), "_")(0)
                    End If

TOP

回復 18# GBKEE


    謝謝版大!!!

立馬測試中~

TOP

本帖最後由 happycoccolin 於 2015-1-20 17:06 編輯

回復 18# GBKEE


    版大~請問一下目前我run過,發現0hm部分都會顯示FAIL,但是我們裡面已經有寫到此段了,請問應如何修改呢?謝謝~

『0ohm』:ohm類的字元前面可能帶空格,部分未帶空格

IF(O1="R",IF(OR((M1="0ohm"),(M1="0 ohm")),IF(Q1平方*N1< W參閱項目2*0.6,PASS,FAIL)))
例如:W需要判斷P1只要有出現0402字元就= 0.0625 最下面有一對應表格
IF(O1="R",IF(OR((M1="0ohm"),(M1="0 ohm")),IF(Q1平方*N1<0.0625*0.6,PASS,FAIL)))

Case "R"
                Msg = Split(Cells(i, "P"), "_")   'Msg = P欄中用 "_" 字串分割傳回的陣列
                If UBound(Msg) = 0 Then           '陣列元素只有一個,P欄中沒有"_"的字元
                    Msg = Split(Cells(i, "P"), "_")(0)
                ElseIf UBound(Msg) > 0 Then        'P欄中有"_"的字元
                    Msg = Split(Cells(i, "P"), "_")(1)
                    If Mid(UCase(Msg), 1, 1) = "H" Then
                      '"r0603_hxx"(xx是變數) : r+後四碼字串_hxx
                        Msg = Split(Cells(i, "P"), "_")(0)
                    End If
                End If
                W = 0
                Select Case Right(Trim(Msg), 4)  ' P欄後4碼字串
                    Case "0402"           '零件大小
                        W = 0.0625        '功率(W)
                    Case "0603"
                        W = 0.1
                    Case "0805"
                        W = 0.125
                    Case "1206"
                        W = 0.25
                    Case "1210"
                        W = 0.3333
                    Case "1812"
                        W = 0.5
                    Case "2010"
                        W = 0.75
                    Case "2512"
                        W = 1
                End Select
                '**********************************************************************
                '4.以下這段,若是Kohm & Mohm中間帶一個空格(K ohm & M ohm),一樣可以判斷出來嗎?
                '**************************************************************************
                Msg = UCase(Right(Trim(Cells(i, "M")), 5))
               
                If Msg = "K OHM" Or Msg = "M OHM" Then   '讀取5個字元,取得歐姆單位
                    'M1需判斷值:以歐姆值計算.若為Kohm:其值×1000、若為Mohm:其值×1000000)
                    '例如:M1=2.64Kohm=2.64*1000=2640
                     M = Val(Cells(i, "M")) * 10000        'Kohm
                    If Msg = "M OHM" Then M = Val(Cells(i, "M")) * 1000000
                    'IF(O1="R",IF(OR((M1<>"0ohm"),(M1<>"0 ohm")),IF(Q1平方/2640-2640*N1<0.0625*0.6,PASS,FAIL)))
                    Msg = Cells(i, "Q") ^ 2 / M - M * Cells(i, "N") < W * 0.6
                End If
               
                If Not IsNumeric(Msg) Then                      '5個字元,非歐姆單位
                    Msg = UCase(Right(Trim(Cells(i, "M")), 4))  '讀取4個字元,取得歐姆單位
                    If Msg = "0OHM" Or Msg = " OHM" Then  '『非0 ohm』:ohm類的字元前面可能帶空格,部分未帶空格
                        'IF(O1="R",IF(OR((M1="0ohm"),(M1="0 ohm")),IF(Q1平方*N1< W參閱項目2*0.6,PASS,FAIL)))
                        M = Val(Cells(i, "M"))
                        Msg = Cells(i, "Q") ^ 2 * Cells(i, "N") < W * 0.6
                    ElseIf Msg = "KOHM" Or Msg = "MOHM" Then
                        'M1需判斷值:以歐姆值計算.若為Kohm:其值×1000、若為Mohm:其值×1000000)
                        '例如:M1=2.64Kohm=2.64*1000=2640
                        M = Val(Cells(i, "M")) * 10000        'Kohm
                        If Msg = "MOHM" Then M = Val(Cells(i, "M")) * 1000000
                        'IF(O1="R",IF(OR((M1<>"0ohm"),(M1<>"0 ohm")),IF(Q1平方/2640-2640*N1<0.0625*0.6,PASS,FAIL)))
                        Msg = Cells(i, "Q") ^ 2 / M - M * Cells(i, "N") < W * 0.6
                    End If
                End If
                If Not IsNumeric(Msg) Then                  '4個字元,非歐姆單位
                    Msg = UCase(Right(Trim(Cells(i, "M")), 3))  '剩下3個字元,最小的歐姆單位
                    M = Val(Cells(i, "M"))
                    Msg = Cells(i, "Q") ^ 2 * Cells(i, "N") < W * 0.6
               
                End If

這是執行出來的結果
複本 1222_test_bom1.zip (55.63 KB)
語法
TEST20150120.zip (17.02 KB)

再拜託版大指導,謝謝~~~拜託~~

TOP

本帖最後由 happycoccolin 於 2015-1-20 17:08 編輯

回復 20# happycoccolin

抱歉多餘檔案已刪除

TOP

        靜思自在 : 【時間無法遮擋】怕時間消逝,花了許多心血,想盡各式方法要遮擋時間,結果是:浪費了更多時間,且一無所成!
返回列表 上一主題