只用excel怎樣做的像資訊庫?

Home Home
引用 | 編輯 nan104211
2007-07-07 05:19
樓主
推文 x0
..

訪客只能看到部份內容,免費 加入會員



獻花 x0
引用 | 編輯 GNUGCC
2007-07-08 21:11
1樓
  
可能要用到 VBA...

獻花 x0
引用 | 編輯 vsqa
2007-07-10 09:20
2樓
  
對 要用VBA才能處理這麼複雜的事

獻花 x0
引用 | 編輯 devilchc
2007-07-11 17:13
3樓
  
要用到VBA,光用內建函數應該做不到,即使拉到旁邊運算也沒辦法

獻花 x0
引用 | 編輯 necos
2007-08-02 23:17
4樓
  
嗯…我會,這個不會很難…
範例給你參考參考…
有問題再討論吧…
ps對了…那個檔要開啟vba功能才有用…

本帖包含附件
檔名: zip 看看吧.zip   (2022-06-09 14:02 / 8 KB)  
範例
下載次數:71


獻花 x1
引用 | 編輯 nan104211
2007-08-03 14:58
5樓
  
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Cells(2, 1) <> "" And Cells(2, 2) <> "" And Cells(2, 3) <> "" And Cells(2, 4) <> "" And Cells(2, 5) <> "" Then
  Call fill_in
End If
End Sub
-----------------------------------------------------------------------------------------------------
Sub fill_in()

x = 5
Do While Not Cells(x, 1) = ""
  x = x + 1
Loop

Cells(x, 1) = x - 4
Cells(x, 2) = Date
Cells(x, 3) = Cells(2, 1)
Cells(x, 4) = Cells(2, 2)
Cells(x, 5) = Cells(2, 3)
Cells(x, 6) = Cells(2, 4)
Cells(x, 7) = Cells(2, 5)

For i = 1 To 5
  Cells(2, i) = ""
Next
End Sub
--------------------------------------------------------------------------------------------------------------
如果可以~可以幫我寫註解嗎?
因為整個語法跟邏輯~真的都不懂~謝謝!

獻花 x0
引用 | 編輯 necos
2007-08-03 23:21
6樓
  
註解如下…

----------------------------------------------------------------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)'<這是代表只要在表格上有執行任何一個動作時就會進行下列程式


If Cells(2, 1) <> "" And Cells(2, 2) <> "" And Cells(2, 3) <> "" And Cells(2, 4) <> "" And Cells(2, 5) <> "" Then'這行是指判斷A2,B2,C2,D2,E2「均不為」空格時,就執行「fill_in」這段程式碼,意指五格都有資料時就執行另外一段程式碼…
Call fill_in '呼叫fill_in這段程式碼
End If'結束判斷
End Sub
-----------------------------------------------------------------------------------------------------
Sub fill_in() 'fill_in 開始…

x = 5'假設x為5
Do While Not Cells(x, 1) = ""'迴圈到ax不為空格時
x = x + 1'再往下一格(x加1)
Loop'再來一次

'上面是從「a5」開始判斷是否為空格,如果為空格的話,那麼就將「粉紅色」區域內的資料填註到
空格(即是ax)的那一列
ax就是a的不是是多少如a6,a7,a8,a9…

Cells(x, 1) = x - 4'產生編號,即空格減掉4就為編號,如a6那一列,則編號為『2』,因6-2。
Cells(x, 2) = Date'由系統產生今天日期放至bx


Cells(x, 3) = Cells(2, 1)'粉紅色第一格存放cx
Cells(x, 4) = Cells(2, 2)'粉紅色第一格存放dx
Cells(x, 5) = Cells(2, 3)'粉紅色第一格存放ex
Cells(x, 6) = Cells(2, 4)'粉紅色第一格存放fx
Cells(x, 7) = Cells(2, 5)'粉紅色第一格存放gx

'x即為之前判斷為空值的那一列

粗體的地方也可以寫成這樣…
for i=1 to 5
cells(x,i+2)=cells(2,i)
next
意思是一樣的…


For i = 1 To 5
Cells(2, i) = "" '消除粉紅色那斷的資料從第1格到第5格
Next
End Sub '結束

就這樣子吧…慢慢研究,可以放入中斷f9,再以f8來一步步查看數值的變化
加油囉…
有問題再問偶吧…

本帖包含附件
檔名: zip 看看吧.zip   (2022-06-09 14:02 / 9 KB)  
含說明註解
下載次數:45


獻花 x1
引用 | 編輯 shokoben
2007-12-01 22:20
7樓
  
哇靠!這麼複雜呀

獻花 x0
引用 | 編輯 zerosay
2008-02-11 16:31
8樓
  
請問necos大大,那Excel下拉選單(醫生)是如何做出來的呢?

獻花 x0