Board logo

標題: [發問] 可否將共用的資料庫獨立,在不開啟檔案情況下正常使用vlookup函數? [打印本頁]

作者: onegirl0204    時間: 2011-6-23 20:50     標題: 可否將共用的資料庫獨立,在不開啟檔案情況下正常使用vlookup函數?

如標題所言∼可否將共用的學生基本資料庫獨立成一個EXCEL檔案(學校有設立一個專屬的硬碟區可存放大家共用檔案),在不開啟該檔案情況下,仍舊可以正常使用vlookup函數?

例如:我新增一個叫做99學年度暑期夏令營.xls的檔案,利用vlookup函數連結學生基本資料庫.xls裡的學生出生年月日及身分證等等資料,前提條件是只開啟夏令營檔案而學生資料庫檔案卻是未開啟狀況,vlookup函數仍舊可以正常運作,不知可否?

我之所以這樣謹慎求證是因為資料庫是我自行建立的,而且我會將所有共用資料庫的檔案以不同的工作表命名存放在同一個檔案內,理所當然時間久了檔案會愈來愈大,即使每一學期相關活動文件自成一獨立檔案,往往因檔案過大處理時偶而會發生當機。加上別的同事也會運用到學生基本資料庫,基於資源共享理念,才會打算將學生基本資料庫獨立存放在共用硬碟區。

煩請有此經驗的前輩們提供寶貴意目,感激不盡,謝謝!
作者: mark15jill    時間: 2011-6-24 08:06

回復 1# onegirl0204


    你的意思是說
要一個檔案作為 查詢
然後其他檔案作為該 檔案的資料擷取來源???




以下原始碼 為 版大之前所做的 擷取該小段出來....
  1. Private Sub CommandButton1_Click() '此功能按鈕名稱為  查詢
  2. Sheets("查詢").Select

  3.     '此區為 查詢功能的程式碼
  4.         Sheets("查詢").Select
  5.     Range("A2:cz65535").Clear
  6. Dim Ar()
  7. Application.DisplayAlerts = False
  8. Application.ScreenUpdating = False

  9. With Sheet1


  10. nd = IIf(OptionButton1 = True, 1, IIf(OptionButton2 = True, 2, IIf(OptionButton3 = True, 3, IIf(OptionButton4 = True, 4, IIf(OptionButton5 = True, 5, IIf(OptionButton6 = True, 6, IIf(OptionButton7 = True, 8, IIf(OptionButton8 = True, 10, IIf(OptionButton9 = True, 12, IIf(OptionButton10 = True, 13, IIf(OptionButton11 = True, 14, IIf(OptionButton12 = True, 15, IIf(OptionButton13 = True, 16, IIf(OptionButton14 = True, 17, IIf(OptionButton15 = True, 25, 0))))))))))))))) '這邊我是用 OPTIONBUTTON當作查詢的選項控制


  11. mystr = "*" & TextBox1 & "*"


  12. '---此區為判讀

  13. If nd = 0 Then MsgBox "請選擇查詢項目": Exit Sub
  14.   
  15. fs = Dir(ThisWorkbook.Path & "\*總表.xls") '這邊改你要的名稱

  16. Do Until fs = ""

  17.    With Workbooks.Open(ThisWorkbook.Path & "\" & fs)

  18.      For Each Sh In .Sheets

  19.      With Sh

  20.      If Application.CountA(.Columns(nd)) = 0 Then GoTo 10

  21.         For Each a In .Columns(nd).SpecialCells(xlCellTypeConstants)

  22.         If a Like mystr Then

  23.            ReDim Preserve Ar(S)

  24.            Ar(S) = Array(fs, .Name, S + 1, .Cells(a.Row, 1).Value, .Cells(a.Row, 2).Value, .Cells(a.Row, 3).Value, .Cells(a.Row, 4).Value, .Cells(a.Row, 5).Value, .Cells(a.Row, 6).Value, .Cells(a.Row, 7).Value, .Cells(a.Row, 8).Value, .Cells(a.Row, 9).Value, .Cells(a.Row, 10).Value, .Cells(a.Row, 11).Value, .Cells(a.Row, 12).Value, .Cells(a.Row, 13).Value, .Cells(a.Row, 14).Value, .Cells(a.Row, 15).Value, .Cells(a.Row, 16).Value, .Cells(a.Row, 17).Value, .Cells(a.Row, 18).Value, .Cells(a.Row, 19).Value, .Cells(a.Row, 20).Value, .Cells(a.Row, 21).Value, .Cells(a.Row, 22).Value, .Cells(a.Row, 23).Value, .Cells(a.Row, 24).Value, .Cells(a.Row, 25).Value) '這邊是判斷欄位

  25.            S = S + 1

  26.            Label1.Caption = "  查詢名稱:" & TextBox1.Text & "  ;  " & "  查詢的筆數為:" & S & "  筆資料"
  27.            Label2.Caption = "查詢時間:" & Date & "      " & Time

  28.         End If

  29.         Next

  30. 10

  31.      End With

  32.      Next

  33.     .Close 0

  34.    End With

  35.    fs = Dir

  36. Loop

  37. If S > 0 Then

  38. .[A2:z65536] = ""

  39. .[A2].Resize(S, 28) = Application.Transpose(Application.Transpose(Ar))

  40. Else
  41. MsgBox "查無資料"
  42. End If
  43. End With

  44. Application.ScreenUpdating = True
  45. 'ActiveWindow.Close savechanges:=True
  46. End Sub
複製代碼





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