close

==============此為廣告欄位,與文章內容無關==============


 
OPEN小將北阪走秀娃娃

訂購網址:http://www.7net.com.tw/7net/rui005.faces?ID=111200240969&catid=13587&visit_chn=02&vid=ivip&mid=ivip_01&user=af000017132


==============此為廣告欄位,與文章內容無關==============

EXCEL VBA.在檔案開啟時,將〔工時表檔案〕自動更新至本檔案
                         <.准提部林.>
---------------------------------
範例檔簡介:
主要需求:
 〔製程工時〕檔案為其他〔成品表〕檔案共用的資料來源,
  如何在〔編輯.更改〕後,其他檔案也自動更新其資料。
 
解決方案:
 1.利用〔更新〕程式,在其他〔成品表〕檔案開啟時,
   即自動將〔製程工時〕當前資料載入本檔。
 2.也可以〔手動〕方法執行更新。
 
程式碼:
 Sub 更新工時表()
 Dim xBook As Workbook, xSht As Worksheet, uRow&
 Dim uFile$, uBook As Workbook, uSht As Worksheet
 Set xBook = ThisWorkbook
 Set xSht = xBook.Sheets("工時表")
 uFile = ThisWorkbook.Path & "\製程工時.xls"
 If Dir(uFile) = "" Then MsgBox "※找不到〔製程工時〕檔案! ": Exit Sub
 Application.ScreenUpdating = False
 For Each uBook In Workbooks
   If LCase(uBook.Name) = "製程工時.xls" Then Exit For
 Next
 If uBook Is Nothing Then
   Workbooks.Open uFile
   Set uBook = ActiveWorkbook
 End If
 For Each uSht In uBook.Sheets
   If uSht.Name = "製程工時" Then Exit For
 Next
 If uSht Is Nothing Then MsgBox "※找不到〔製程工時〕工作表! ": Exit Sub
 uRow = uSht.[A65536].End(xlUp).Row
 If uRow = 1 Then MsgBox "※〔製程工時〕工作表A欄無資料! ": Exit Sub
 uSht.Range("A:C").Copy xSht.Range("A:C")
 xBook.Activate
 xSht.Range("F1") = "更新時間:" & Format(Now(), "yyyy.mm.dd  hh:mm:ss")
 uBook.Close savechanges:=False
 Beep
 End Sub
 
公式:
 在〔成品表〕的〔工時欄〕,則以如下常駐公式自動更新。
 D4公式,下刷至所需列數:
 =IF(B4="","",IF(COUNTIF(工時表!$A:$A,B4),VLOOKUP(B4,工時表!$A:$C,3,0)&"",""))
  
 --說明--
 1.若〔工時〕只依〔品號〕取得相對應值,請使用〔版本(1)〕範例,
   但〔品號〕若有〔重覆〕,則其取得資料皆為〔第1筆〕
 2.若〔工時〕同時還要參照〔品名〕,請用〔版本(2)〕 範例。
---------------------------------
<範例檔>:
以下內文出自: http://tw.knowledge.yahoo.com/question/question?qid=1612031203212
今日特價


---------推薦每日奇摩購物中心好康商品-----------



本文內容引用自奇摩知識+,圖文版權為原所有人所有,如有任何侵權違規行為請馬上告知站長!將馬上處理!謝謝!
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 林志平 的頭像
    林志平

    stacey33的部落格

    林志平 發表在 痞客邦 留言(0) 人氣()