搜尋此網誌

2015年5月22日

Excel 依據儲存格的數值調整行高

「Excel 自動將所有欄/列 印到同一張紙時,列高總是不足以顯示所有的文字。」

「嗯,因為自動調整列高的功能在縮放時會失效。」

「那我該怎麼辦。」

「你就先用 len() 算出儲存格內的字數,換算合適的行數,最後利用篩選逐一調整各數值的列高。」

以上的對話,是幾年前我在幫一個打字人員列印報告時遇到的,當時想出的解決方法就是增加一個欄位,專門顯示適當的行數,再手動用篩選功能調整欄高,不然可能印出來的成品就會有被截掉的風險。

最近我又遇到類似的問題,不過這一回,我用了巨集。

我手頭上有一張表格,其中 D 欄會填入件數,件數越多則行高需要越大,好讓檢查人員可以有足夠的空間填寫他們的意見,例如:
D欄 列高
1 20
2 40
3 60
n n * 20
這下可麻煩了,如果我要每一列逐一調整欄高,那我肯定會瘋掉。

解法一:篩選

  • 說明:利用篩選功能:篩選同樣為 2 的數值,設定欄高為 40。
  • 優點:可以同時調整相同數值的欄高
  • 缺點:若是不同數值的數量太多,一樣會死人的。

解法二:巨集

  • 說明:利用巨集逐一調整區域內的列高
  • 設定:
    • 範圍:D3:D502,以(3,4)~ (502,4) 表示(列,欄)
    • i 代表列數,(i,4) 代表儲存格,因此 i = 3 時,代表 (3,4),也就是 D3 的意思

Dim i As Integer
For i = 3 To 502
 If Cells(i, 4).Value * 20 > 409 Then
   Rows(i).RowHeight = 409
 ElseIf Cells(i, 4).Value = 0 Then
                 Rows(i).RowHeight = 20
 Else
  Rows(i).RowHeight = Cells(i, 4).Value * 20
        End If
Next

參考資料

  1. 「row height - Excel VBA rowheigt from value in range - Stack Overflow」. 引見於 2015年5月21日. http://stackoverflow.com/questions/16547330/excel-vba-rowheigt-from-value-in-range.
  2. 「vba - Excel macro: how do I change all row heights, BUT if cell.value = bold make the cell height bigger?」. Stack Overflow. 引見於 2015年5月21日. http://stackoverflow.com/questions/3616610/excel-macro-how-do-i-change-all-row-heights-but-if-cell-value-bold-make-the.
  3. 「Excel VBA Range Object」. 引見於 2015年5月21日. http://www.excel-easy.com/vba/range-object.html.


2015年5月10日

眷村的家鄉話

眷村的特色之一,大概就是可以聽到各種大陸不同地方的方言,有些叔叔伯伯們說的話,過了二十幾個年頭,我還是不懂他們在說些什麼。

除了外省方言,有些老兵到了台灣後娶的是台灣的姑娘,媽媽阿姨們是台灣人,因此台語也成為通用的語言一種。

許多提及跨省籍婚姻的戲劇都會演出那麼一段,就是媽媽生氣時就會用台語抱怨,而老公雖然不太懂她在說些什麼,但肯定不是一些好話。

隨著眷村改建為國宅,老一輩的人離開了國宅,取而代之的是未曾謀面過的新面孔,用老一輩的說法就是「外面的人也住了進來」。雖然村子的大門已經拆掉,但是大家的心裡的那道門依舊存在那邊。

新搬進來的,當然就是一些資金較足夠的人士,講得也就是普通的國語。但是不知為何,新進來的人,似乎就沒有那麼常互相打招呼,看個一眼就走掉。沒想到我們少了外省話,現在連招呼用的國語也少了許多。

我曾在想,眷村的多元文化是否也會慢慢被普遍成單單的幾種語言。雖然溝通是方便多,但是似乎就也少了當初那種怕聽不懂別人的話,而始終用心聽人說話的感覺。

下午到全聯買個東西,聽到了北京腔十分濃厚的太太,原來是位大陸的媳婦。慢慢走回家中的路上,菲律賓、印尼話也在耳邊響起。

原來眷村的特色並未消失,我們是台灣的一小個縮影,始終是社會的大熔爐,說著彼此的家鄉話訴說著自己的故鄉,走在台灣的土地上。

2015年5月3日

小紅傘 Avira 槓上 JUC500 USB 3.0 Wormhole Switch

Splash_GOSync

話說 JUC500

等了快要兩年,j5create 凱捷終於推出了 USB3.0 的跨系統傳輸線 JUC500。

JUC500 的好處就是解決一人操控雙台電腦之間的麻煩,不用透過網路磁碟、另一顆隨身碟之類的,可以直接分享剪貼簿和檔案。而它的驅動程式就放在它的 USB 頭當中,也就是時下很流行的內建驅動程式的方式,你也不用擔心光碟片會搞丟。

問題:Avira 阻擋 JUC500

問題來了,最近我發現只要小紅傘 Avira Antivirus Pro 開著的時候,我就無法順利開啟 Wormhole.exe 執行程式。

觀察

事實上不需要完全關閉防毒軟體,只需要關閉 Real-Time Protection 即可讓 JUC500 順利執行。

解決:白名單

JUC500 白名單
  1. 在小紅傘圖示上按右鍵,選擇 設定 Avira Antivirus Pro
  2. 電腦防護 / Real-Time Protection / 掃描 / 例外 / 要讓 Real-Time Protection 略過的檔案物件,將 Wormhole.exeDeployment 資料夾 加入忽略清單。
  3. 重新點選 Wormhole.exe 就可以執行。