2008年6月4日 星期三

我的 Excel 日記

前一陣子, 參考網路上別人用 Excel 寫日記的精神, 創造出我自己的格式。

image

以下只介紹我自己創造的部分, 其他請參考 Excel 日記

.

有別於『三維』(a), (b) 或『二維』(c) 的格式 (日期 再加上 二維九宫格分類 或 一維分類), 最後我使用『一維半』的方式, 記事集中在一大格(真的可以很大格), 再以小格分類 (還是有分類的作用), 而且整體寬度又不會太寬。

.

再加上一些公式和巨集, 寫起來就很順手囉~~

F~Q欄 (分類) 填上
> : 進行中
+ : 給自己的嘉獎 (加分項目)
- : 減分項目
@ : 重點項目

於 F~Q欄 手動加上顏色, 並使用自動篩選, 欄R 則是方便篩選之後看日期, 因為 欄A 在篩選之後就不見得都有日期。

欄R 的公式為
R2 =IF(ISNUMBER(A2),A2,OFFSET(R2,-1,0))

.

欄E 是自訂函數, 自動顯示勾選的分類
E2 =StrAdd($F$1:$Q$1,F2:Q2,E$1)

Function StrAdd(A0, B0, C0)
Set A = A0
Set B = B0
C = C0
Ans = ""
i = 1
For Each AA In A
BB = B(i)
If Len(BB) > 0 Then
If Len(Ans) > 0 Then Ans = Ans + C
Ans = Ans + AA
End If
i = i + 1
Next
StrAdd = Ans
End Function

.

按鈕 : 自動加入一行, 並複製公式

Private Sub cbNewLine_Click()
myNewLine
End Sub

Sub myNewLine()
Row1 = Selection(1).Row
Col1 = Selection(1).Column
Row2 = Row1
Col2 = Col1
For Each myCell In Selection
If myCell.Row < Row1 Then Row1 = myCell.Row
If myCell.Row > Row2 Then Row2 = myCell.Row
If myCell.Column < Col1 Then Col1 = myCell.Column
If myCell.Column > Col2 Then Col2 = myCell.Column
Next
If Row2 <> Row1 Then
MsgBox ("Please select one cell or one row !!")
Exit Sub
End If

Application.CutCopyMode = False
Rows(Row2 + 1).Insert Shift:=xlDown

For j = 1 To 26 ' 自動複製公式
If Left(Cells(Row2, j).Formula, 1) = "=" Then
Cells(Row2, j).Copy
Cells(Row2 + 1, j).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End If
Next
Cells(Row2 + 1, Col2).Activate
End Sub

.

按鈕 : 自動將選取範圍依日期上色, 以方便辨識 (記得不要選手動上色的 F~Q欄, 不然顏色會被改掉)

Private Sub cbColor_Click()
DayColor
End Sub

Sub DayColor()

Set B = ActiveWindow.RangeSelection
For Each A In B

A.Select
With Selection.Interior
If TypeName(A.Value) = "Date" Then
wkday = Weekday(A.Value, 2)
ElseIf TypeName(A.Value) = "Double" Then
wkday = Round(A.Value * 10, 0) Mod 10
End If
Select Case wkday
Case 1
.ColorIndex = 40
.Pattern = xlSolid
Case 2
.ColorIndex = 36
.Pattern = xlSolid
Case 3
.ColorIndex = 35
.Pattern = xlSolid
Case 4
.ColorIndex = 34
.Pattern = xlSolid
Case 5
.ColorIndex = 37
.Pattern = xlSolid
Case 6
.ColorIndex = 39
.Pattern = xlSolid
Case Else
.ColorIndex = 38
.Pattern = xlSolid
End Select
End With
Next A
B.Select
End Sub

.

2 意見:

發表您的回應
  1. 匿名 提到...

    你好

    可以請給我檔案嗎

    我真的試了很久 巨集?按紐?

    就是不得其門(我太弱)

    請送我檔案-我的日記

    謝謝!!謝謝!!

    iftmc69@yahoo.com.tw

    請不要介意我匿名 其他選項我不會

  2. Nien 提到...

    我用另一款線上日記 - 溫度,
    它是網頁版,雖然簡單,也蠻有古典感的。
    www.hearty.me

張貼留言