Excel 2007重大bug:850×77.1=100000

Google Group裏一個以微軟Office Excel爲主題的新聞組

裏有人報告說,Excel 2007裏存在一個重大bug,

會將850*77.1錯誤地計算爲100000,而不是65535.

出現這麽低級的bug,微軟工作人員開發和審核的不嚴謹是很顯然的

,至少可以說是百密一疏,尤其是舊版産品反而沒有問題,無疑會讓微軟

更加尷尬.

850*77.1並不是一個特例,不信你可以在Excel 2007裏計算下邊這些乘法:

=5.1*12850

=10.2*6425

=20.4*3212.5

=40.8*1606.25

=154.2*425

=212.5*308.4

=308.4*212.5

=425*154.2

結果都是100000吧?這個看起來有些不可思議的問題很快得到了多名專家的確認,

Excel MVP Bernad Leingme更是第一個站了出來.

 

感想:還好拉 低級到不至於 只是真的很誇張而已  office 2003版沒出現這個問題

            以後可能還是用2003版比較安心吧

[新聞] 慢性疲勞 大學生作息差

 
我覺得我好像中招了 !! = =
 
作者  Ohz (女的)                                                 看板  share
 標題  [新聞] 慢性疲勞 大學生作息差
 時間  Fri Sep 21 18:46:49 2007
───────────────────────────────────────
 
慢性疲勞 大學生作息差
【甯瑋瑜╱台北報導】「醫生,我最近覺得很累,睡不飽,且很容易疲勞,是不是肝不好
?」臨床醫師發現,上班族特有的「慢性疲勞症候群」,似乎也在大學校園蔓延,但上班
族是因工作緊張與壓力,不少常莫名疲倦、失眠、又懶得動的學生,並非用功讀書、做研
究,而是單純的生活習慣差、作息混亂。
長期恐成憂鬱症
耕莘醫院心理衛生科主任楊聰財說,臨床病例來自公、私立大學的大學生和研究生,主因
多是入睡困難、常失眠、白天動輒疲累。台灣大學校醫、台大醫院家醫科主治醫師李依錦
說,學生一到診間便要求做肝功能檢查,但問診發現並無肝病症狀,「肝功能檢測都正常
,問題出在生活形態不佳。」
李依錦調查台大一千八百多名碩、博士生,發現五成碩士生與四成博士生常疲憊不堪,男
生近四成六,女生四成九。分析發現學生常熬夜,不吃早餐,嚴重缺乏運動,睡眠不足七
小時,不少有失眠困擾;三餐定時、睡眠充足與規律運動是保護因子,如不改善,長期極
應規律時間睡覺楊聰財指許多學生是夜貓子,「晚上不是在念書,多在上網、與人MSN
,或看韓劇、日劇」,建議應規律時間睡覺。李依錦指白天規律運動,比一周運動一次有幫助。
學生避免慢性疲勞注意事項
.不熬夜,規律時間上床睡覺,睡滿7小時
.三餐定時,絕不跳過早餐
.每天運動半小時,遠優於1至2周運動一次
.在醫師評估下,可短時間以藥物助眠,幫助調整時差
.訂出求學時程表,避免失去生活目標
.若有疲倦、胃口不好等不適症狀應就醫
資料來源:醫師李依錦、楊聰財
 

※ 發信站: 批踢踢實業坊(ptt.cc)

Just when I needed you most (EPSON廣告原曲)

 

原唱為Randy VanWarmerEpson廣告版本則是"品冠"翻唱的
歌名4 Just when I needed you most 在我最需要你的時候 
原唱4 Randy VanWarmer藍迪范沃瑪 (1955-2004)
專輯4 Warmer (1979年發行)

You packed in the morning
你在清晨收拾行李
I stared out the window
我凝視著窗外
And I struggled for something to say
掙扎著想說些什麼
You left in the rain without closing the door
你在雨中離去,沒有把門關上
I didn’t stand in your way
我也沒有阻止你

But I miss you more than I missed you before
但我比從前更想念你
And now where I’ll find comfort, god knows
天曉得我到哪裡才能找到安慰
‘Cause you left me just when I needed you most
因為你在我最需要你的時候離開了我
(You) left me just when I needed you most
你在我最需要你的時候離開了我

Now most every morning I stare out the window
如今,幾乎每個早晨,我望著窗外
And I think about where you might be
想著你可能在什麼地方
I’ve written you letters that I’d like to send
想寄給你的信早已寫好
If you would just send one to me
只要你捎來一封信

‘Cause I need you more than I needed before
因為我比以前更需要你
And now where I’ll find comfort, god knows
天曉得我在何處可找到安慰
‘Cause you left me just when I needed you most
因為你在我最需要你的時候離開了我
(You) left me just when I needed you most
你在我最需要你的時候離開了我

(
重複*)

Now I love you more than I loved you before
我比從前更愛你
And now where I’ll find comfort, god knows
天曉得我在何處可找到安慰
‘Cause you left me just when I needed you most
因為你在我最需要你的時候離開了我
You left me just when I needed you most
你在我最需要你的時候離開了我
You left me just when I needed you most
你在我最需要你的時候離開了我 

開啟EXCEL自動執行巨集

這很簡單 只是一個小觀念而已 但是卻很方便 尤其是你要傳給不會使用VBA的人看的時候

他只需打開EXCEL檔案而已 就自動執行你所要執行的巨集

所以不要幹壞事啊  寫巨集病毒啊 XD  另外要提醒的是需將EXCEL的安全性調到低才可以自動執行巨集

所以還是有他的不方便性在  因此我順便教一下如何將EXCEL的安全性調低好了請到工具表單下選取巨集=>安全性 如下圖所示

 

 

接下來 只要選擇"低"後按確定便即可選擇"中"也可以

不過以後只要有巨集的檔案EXCEL都會問你要不要開啟巨集
 
 

一般來說 我建議大家選擇 ""安全性  只是要注意的是

當你開啟有巨集的檔案時   你選擇"停用巨集" EXCEL就不會載入巨集的程式    只有 選擇"啟用巨集" 才會自動載入巨集

因此當你信任這個程式時    請不要按到"停用巨集"  不然你可能就會失去執行巨集的功能

如果妳不小心按錯到 "停用巨集" 但是你又後悔想執行該檔案巨集的功能時 你只要關掉檔案再重新開啟即可

( 這時EXCEL會再次詢問你要不要開啟巨集這項功能 這時你選"啟用巨集" 即可 )

 

 

最後如何寫自動執行的巨集 很簡單 只要在模組的名稱打上   “Auto_Open()”  如下圖藍色線上標誌所示

 

如何刪掉沒有用儲存空格

問題來自於PTT的網友 lame
問題的描述為需要把以下的沒有用空格給刪掉 
就是讓每一直直列的空格被刪掉 順序不變
由於有上萬個數據 無法一一刪  因此希望能用什麼方法能快速自動管理  如下圖所示
 
 
希望變成
 
 
同樣我利用巨集來寫  但是這次程式碼寫很差
我也懶得寫好它  因為還要想判斷式終止就覺得很麻煩 = =
反正只要能"堪用" 就行了嘛 呵呵呵….. 又不是寫論文
 
廢話不多說  我的程式碼 儲存格範圍設在 A1到T20 這個可以自行設定
迴圈次數設為400次 應該是越多越好 而且這樣寫其實也不是很好
應該是要寫一個判斷式讓迴圈終止 但是我懶得想就是了
有時間或有興致 我再會好好想的  我是懶鬼嘛 呵呵…
 
程式碼如下
 
Do
For x = 1 To 20
For y = 1 To 20
If Cells(x, y) = "" And Cells(x + 1, y) <> "" Then
Cells(x, y) = Cells(x + 1, y)
Cells(x + 1, y) = ""
End If
Next
Next
g = g + 1
Loop Until g = 400
 
 
 
 

儲存格互調

問題: 今天有一筆資料,排序為隨機的排序
          假設今天排列如下:
      A
1   23
2   45
3   11
4    9
5   60
6   19
      如果今天要A1跟A6對調,A2跟A5對調,A3跟A4對調
      請問有語法可以用嗎? 
 
我的想法還是利用巨集來寫
程式碼如下
Dim w(10, 10)
Q = 6 ‘ 你的儲存格有幾格 , 像題目有6格級打6 奇數也行
For x = 1 To Q
w(x, 1) = Cells(x, 1)
Next
For x = 1 To Q / 2
swap = w(x, 1)
w(x, 1) = w(Q + 1 – x, 1)
w(Q + 1 – x, 1) = swap
Next
For x = 1 To Q
Cells(x, 2) = w(x, 1)
Next
End Sub
參考範例下載
 
另外一個方法是由網友 ZaiShenYeah 所提供的 (資料來源ptt  office板)
&#27;插入一欄,然後輸入1~6
         A       B
1       1       23
2       2       45
3       3       11
4       4        9
5       5       60
6       6       19
選取資料範圍,利用排序的功能,以A欄為主要排序依據由大排到小
         A       B
1       6       19
2       5       60
3       4        9
4       3       11
5       2       45
6       1       23
然後刪除A欄就大功告成拉
         A
1       19
2       60
3        9
4       11
5       45
6       23
 

在EXCEL表單與巨集加入密碼

 
當妳打好公司機密的表單時,是不是怕有人(商業間諜)偷看你的資料勒
 
又或者當你兩三天沒睡覺辛辛苦苦寫好程式時,是不是很怕突然被輕輕鬆鬆人竊取你的智慧結晶勒
 
接下來是我在書上看到的實用技巧 可以將妳寫好的程式或者是表單加上密碼保護 
 
當然鎖密碼只能防君子不能防小人  真的是很重要的資料  還是請你要小心保護
 
首先我先介紹保護表單的方式 :
 
第一步 在"工具"表單下點選"選項"
 
 
第二步 點選"安全性"  並將你的密碼打上 接著按儲存關閉之後打開
 
 
之後 只要打開檔案後都要輸入密碼才可進入表單下編輯 如下圖所示
 
 
接下來介紹的是 巨集程式碼的隱私權保護方法
 
第一步  到表單的"巨集" 下 點選 Visual Basic 編輯器
 
 
 
接下來 在VBAProject 按滑鼠右鍵  點選" VBAProject 屬性" 如下圖所示
 
 
最後 在"保護" 選單下 在鎖定專案下面的 "鎖定專案以供檢視" 選項打勾 並在下面填入你設定的密碼  如下圖所示  接著按儲存關閉EXCEL檔案
 
 
 
這樣便完成了 程式碼的隱私權保護了  當你要編輯程式碼是同樣的要輸入你所設定的密碼才可編輯或觀看程式碼
 
這樣以後公司老闆要把妳炒魷魚 你就可以拍拍屁股立刻走人 也不需擔心你的智慧財產權被人侵犯
 
想你炒魷魚 那就只好另請高明把你的密碼給解開 才能用到你的資料表和程式碼  或者沒辦法是再求妳回公司摟  誰叫他不重視你的能力勒

成績單製作2

 
接下來說的是成績單的應用進階,也就是當總分相同時,
則利用數學的成績來當作排名的依據
我有兩個想法
第一個想法就是用VBA巨集來做判斷
程式碼如下
 
Sub a()
For y = 1 To 35
For x = 5 To 39
For z = 5 To 39
If Cells(x, 13) = y And Cells(x, 13) = Cells(z, 13) And x <> z Then
If Cells(x, 5) > Cells(z, 5) Then
Cells(z, 13) = Cells(z, 13) + 1
Else
Cells(x, 13) = Cells(x, 13) + 1
End If
End If
Next
Next
Next
End Sub
 
另一個想法就是
另外用一個儲存格來計算總分
主要是將數學的比重稍稍調高一點(因為你說總分相同時,用數學成績作排名依據)
例如只調高 0.001
然後再用RANK函數來計算這個儲存格的排名(只用來排名而已)
當然最後的總分計算還是用原本的計分方式的儲存格來計算
可以參考相關我的範例  下載
 
 

成績單製作

 
 
最近在努力加強OFFICE軟體系列之中EXCEL的應用,原因是在我的論文之中EXCEL這套軟體真的是幫了我不小的忙
 
再加上有VBA強大的功能所加持,因此迷上了這套EXCEL軟體,如果有人說EXCEL只是計算機的報表單的話
 
那他真的是白白浪費了Excel所具備的強大的資料分析與處理功能 實在是很可惜了這套軟體
 
話說APPLE公司最近也出了與OFFICE同樣功能的iWORK
 
這套商業辦公室軟體之前有Keynote (類似於微軟的PowePoint)及Pages(類似於微軟的Word)兩種威力強大的商業辦公室軟體
 
再加上新出的iWORK08 又新增了"numbers"這套類似於EXCEL的試算表軟體,看來蘋果公司也是虎視眈眈的想把微軟多年以來
 
所佔據的辦公室軟體大餅吃掉啊,再加上google也是猛推線上版的免費商業辦公室軟體,
 
看來辦公室軟體大戰應該會越來越白熱化(看好戲中 ~~)
 
========== 以上廢言 ===========    ========== 以上廢言 ===========    ========== 以上廢言 ===========
 
看來我是蠻無聊的,反正就把我在PTT的OFFICE板上或是網路上常看的EXCEL相關問題,
 
以及我看書覺得EXCEL有哪些很不錯的功能的和大家分享
 
如果有問題或是我有寫錯誤的或是有更好的想法想跟我一起分享的,歡迎指教啊…….
 
========== 以上廢言 ===========    ========== 以上廢言 ===========    ========== 以上廢言 ===========
 
這是之前我在網路上看到的 網友問成績單的做法
 
主要分成  1.如何將分數在 100~80 、 80~60 、 60~40 與 40~0  之間做分類
                   
                   2. 在一個欄位顯示每個人的班上名次 (非排序)
             
                   3.如何讓低於60分的成績變成紅色,反之變成藍色
 
第一個問題 我覺得利用"自動篩選"這個功能就很好用了
 
使用方法如圖下
 
 
接著點下拉式選單 選"自定" 如下圖所示
 
 打上你想要查詢的成績範圍 在此我想要查詢100~80分的成績之內 如下圖所示
 
 接著按確定 如下圖所示 EXCEL就會幫你分類好了阿  是不是很方便啊
 
 
第二個問題的話 只要用到函數 "RANK" 就可以了
 
有兩個作法 一個是利用 VBA(在EXCEL工具選項選巨集)
 
打上
For x = 4 To 1
Cells(x, 18) = "=rank(" & "Q" & x & ",Q4:Q41,0)"
Next
便會在S這一欄中(在繁體中文版的Excel 2003裡面,row叫做「列」,column叫做「欄」。台灣叫直行橫列,大陸叫直列橫行) 作出排名。
 
另一個方法則是在 S4空格中打上  = RANK(Q4,$Q$4:$Q$41,0)   接著用滑鼠往下拉(或點兩下)同樣也可以做出排名
 
如下圖所示
 
 
第三個問題 
 
我也是利用巨集的功能
 
打上
 
For Each CellObj In Range("E4:Z100") ‘ 在E4與Z100的範圍中
    If CellObj.Value <= 60 Then
        CellObj.Font.Color = RGB(255, 0, 0)     ‘ 若數值小於60,則以紅色顯示’                    
    Else
        CellObj.Font.Color = RGB(0, 0, 255)     ‘ 其他則相反,全部則以藍色顯示’
    End If
Next CellObj
 
然後按執行便可以了
 
完整範例 請按此  下載