昱得資訊工作室
麻辣學園
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
您忘了 啟用您的帳號嗎?
2008-10-06, 22:29:48
世界展望會助學計劃
首頁 說明 登入 註冊 贊助論壇 想當作者?
新聞: 為增進論壇品質,全面更新硬體設備,經費有限,請各位踴躍贊助論壇!!


+  麻辣家族討論區
|-+  MS Office 系列
| |-+  EXCEL
| | |-+  Excel程式區 (版主: hsieh)
| | | |-+  請問大大如何設定整個欄位為大寫
0 會員 以及 1 訪客 正在閱讀本篇主題. « 上一篇主題 下一篇主題 »
頁: [1] 2 向下 列印
作者 主題: 請問大大如何設定整個欄位為大寫  (閱讀 3973 次)
whewu
中學生
*
離線 離線

文章: 42


請問大大如何設定整個欄位為大寫
« 於: 2005-04-15, 17:37:00 »

如何設定c1:c100或整c欄每次輸入時都是大寫,不需要按caps lock
已記錄
yem
高中生
*
離線 離線

文章: 110



Re: 請問大大如何設定整個欄位為大寫
« 回覆文章 #1 於: 2005-04-15, 19:35:06 »

如何設定c1:c100或整c欄每次輸入時都是大寫,不需要按caps lock

讓C欄都大寫,其他欄小寫好不好? Undecided

如果好,就貼在你要這個效果的那的SHEET的代碼區

Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const VK_CAPITAL = &H14                               'CapsLock
Const KEYEVENTF_EXTENDEDKEY = &H1                     '按下
Const KEYEVENTF_KEYUP = &H2                           '放開

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Val As Boolean
Dim keys(0 To 255) As Byte
If Target.Count > 1 Then Exit Sub
If Target.Column <> 3 Then
    GetKeyboardState keys(0)
    Val = keys(VK_CAPITAL)
    If Val Then PressCaps
Else
    GetKeyboardState keys(0)
    Val = keys(VK_CAPITAL)
    If Not Val Then PressCaps
End If
End Sub
Sub PressCaps()
keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
End Sub
已記錄

What doesn't kill you will only make you stronger
leonchou
論壇維護群
*
離線 離線

文章: 1160


Re: 請問大大如何設定整個欄位為大寫
« 回覆文章 #2 於: 2005-04-15, 23:41:48 »

哇,yem兄還動到 API 呀?

不是 UCase, LCase 就好了嗎?
已記錄

yem
高中生
*
離線 離線

文章: 110



Re: 請問大大如何設定整個欄位為大寫
« 回覆文章 #3 於: 2005-04-15, 23:50:32 »

哇,yem兄還動到 API 呀?

不是 UCase, LCase 就好了嗎?

當初只想到樓主要求的「  C欄每次輸入時都是大寫,不需要按Caps Lock  」

其他沒想到

謝謝LeonChou兄的提醒 Smiley Smiley Smiley

« 最後編輯時間: 2005-04-16, 12:31:03 由 yem » 已記錄

What doesn't kill you will only make you stronger
whewu
中學生
*
離線 離線

文章: 42


Re: 請問大大如何設定整個欄位為大寫
« 回覆文章 #4 於: 2005-04-18, 12:07:26 »

感謝大大,太厲害,寫的太高深,小弟我才疏學淺不聊解也看不懂.是否能解釋?我會深入研究.
另外用函數是否也可做到?
已記錄
oobird
凸槌的木工
論壇維護群
*
在線 在線

文章: 4419


Re: 請問大大如何設定整個欄位為大寫
« 回覆文章 #5 於: 2005-04-18, 13:07:54 »

看看UPPER函數說明,但要借另一欄轉換。
已記錄

結廬待慧君
whewu
中學生
*
離線 離線

文章: 42


Re: 請問大大如何設定整個欄位為大寫
« 回覆文章 #6 於: 2005-04-18, 14:49:39 »

感謝+感恩...在系統設定上是否有可以設定整欄?或不需要借另一欄轉換
已記錄
leonchou
論壇維護群
*
離線 離線

文章: 1160


Re: 請問大大如何設定整個欄位為大寫
« 回覆文章 #7 於: 2005-04-18, 19:17:59 »

感謝+感恩...在系統設定上是否有可以設定整欄?或不需要借另一欄轉換

1. 程式(工作表事件) 2. 借輔助欄用UPPER函數

就這兩種方式,就我所知沒別的了。

有個觀念分享給初學者 --
函數(或公式)所在的儲存格只能根據其他儲存格返回結果,而不能直接變更它本身的值。
例如 "我要在A1輸入一個值,然後A1要依某某條件變成另一個值。" -- 這是函數辦不到的事。
所以我們常說要用函數就需要借用輔助格。

再從寫程式的角度來看,有沒有什麼方式讓我不用寫一句程式碼就達到這個目的?
不要把問題看的過分容易了。
即使強如 API,它也需要一個執行的時間點,而這個點要靠Excel本身的事件來觸發。
(如果你偏要設一個Timer之類的程式來隨時偵測執行,我只能說那是不切實際的)

補充 - 工作表事件程式較簡便的寫法:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Column <> 3 Or Target.Count > 1 Then Exit Sub
 Application.EnableEvents = False
 Target.Value = UCase(Target)
 Application.EnableEvents = True
End Sub

工作表事件程式如何放到正確的位置? --
在工作表標籤按右鍵 > 檢視程式碼
在空白處就是放程式的地方。
已記錄

whewu
中學生
*
離線 離線

文章: 42


Re: 請問大大如何設定整個欄位為大寫
« 回覆文章 #8 於: 2005-04-19, 09:26:26 »

太好了.....感謝leonchou 這是我要的,也感謝協助我大大.
哪裡有工作表事件程式資料可以讓初學的我學習?
已記錄
leonchou
論壇維護群
*
離線 離線

文章: 1160


Re: 請問大大如何設定整個欄位為大寫
« 回覆文章 #9 於: 2005-04-19, 12:17:22 »

哪裡有工作表事件程式資料可以讓初學的我學習?

http://gb.twbts.com/index.php/topic,717.0.html
已記錄

頁: [1] 2 向上 列印 
« 上一篇主題 下一篇主題 »
自訂搜尋
跳到:  

本頁花了 0.322 秒, 以及 20 次的資料庫查詢.