只用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