發問區
會員登入 新使用者?立即註冊 . 服務首頁|服務說明|Yahoo!奇摩. 知識+ 首頁 知識分類 電腦網路 科學常識 醫療保健 煩惱心事 生活資訊 手機通訊 休閒嗜好 視聽娛樂 運動體育 社會人文 商業金融 教育學習 .如何做 煩惱 主題知識 .我要發問 發表 我要發問 ..熱門: 新年賀詞 過年禁忌 壓歲錢由來 犯太歲 平溪天燈節 主題 金蛇報喜,大過好年 用手機上知識+ .知識搜尋 ....知識+ 首頁> 電腦網路> 軟體> 商務應用 加入追蹤 轉寄朋友 友善列印 .知識問題| EXCEL VBA(判定儲存格有非中文變底色的語法). 發問者: Andy ( 初學者 5 級) 發問時間: 2013-01-09 08:38:58 解決時間: 2013-01-10 17:55:48 解答贈點: 32 ( 共有 6 人贊助 ) 回答: 1 評論: 0 意見: 11 [ 檢舉 ] 網友正面評價 100% .共有 13 人評價.各位 大大 好! 請教:觸發的儲存格內判定如果有(非中文)就底色變為3紅色的VBA語法 1.知識搜尋找到了公式的相關語法 A1=IF(AND(CODE(B1)>42047,CODE(B1)<50815),"有","無") 2.Andy試著自己拆解公式變成VBA,但是事實並非憨人想的那樣簡單 If .CODE < 42047 And .CODE > 50815 Then .Interior.ColorIndex = 3 請各位 大大 指導! 最佳解答發問者自選 .. 回答者: 准提部林 ( 大師 5 級 ) 擅長領域: 商務應用 | VisualBasic 回答時間: 2013-01-10 12:38:02 [ 檢舉 ] .EXCEL VBA.判斷字串是否含有〔全.半型〕的〔英.數.符號〕                          <.准提部林.> --------------------------------- ■方法:將字串分別轉成〔全.半型〕互相對照  <公式>  =IF(ASC(B1)=BIG5(B1),0,1)    <VBA>  Sub T20130109_1()  If StrConv([B1], vbWide) <> StrConv([B1], vbNarrow) Then M% = 1  MsgBox M  End Sub   ■另外建議:  在輸入〔代號〕後觸發取得〔對應名稱〕時,同時做判斷即可,  如此,〔名稱〕可以不限定文字的組成方式。    <程式碼>  Private Sub Worksheet_Change(ByVal Target As Range)  Dim mFind As Range, xR As Range  With Target    If .Columns.Count > 1 Or .Column <> 2 Then Exit Sub    Application.EnableEvents = False    For Each xR In .Cells      xR.Interior.ColorIndex = 0      If xR <> "" And xR.Row > 1 Then       Set mFind = [清單!A3:F600].Find(xR, Lookat:=xlWhole)       If mFind Is Nothing Then xR.Interior.ColorIndex = 3: GoTo 101       If mFind.Column Mod 2 = 0 Then GoTo 101       xR = mFind(1, 2).Value      End If    101: Next  End With  Application.EnableEvents = True  End Sub    --說明--  1.不論輸入〔代號〕或〔名稱〕,找不到符合者,以紅色標示。  2.輸入〔代號〕若有符合,自動替換為〔名稱〕。  3.輸入〔名稱〕若有符合,不處理該儲存格的內容及格式。  4.除了手動輸入以〔單格〕觸發 Change 外,    For Each xR In .Cells 提供多格〔複製.貼上〕的連續處理。 --------------------------------- <範例檔>下載: 檔案名稱:20130109a01(輸入代號自動填對應值).rar http://www.funp.net/620087 ---------------------------------  相關詞: asc檔,asc碼,asc-setup,vb asc,bmw asc,asc 表,asc是什麼,asc desc,asc code,asc函數 ASC,語法,ByVal Target As Range,林.>,CODE,判定,For Each xR In .Cells,名稱,EXCEL VBA,代號[ 快速連結 ] 其它回答( 0 ) | 意見( 11 ) | 評論( 0 ) .發問者評價 謝謝 准提部林 大大耐心的指導! 謝謝各位 大大 熱情贊助! .發表你的評價 你的評價 發表評價: 正面 普通 負面 評價內容: 發表 取消 . 加入追蹤 轉寄朋友 友善列印 .馬上按讚 加入 Yahoo! 奇摩 知識+ 粉絲團 •免費索取商英光碟+小書 •多益700分線上測驗題庫 •立即免費測試你的多益等級 •英文email超實用金句! •測你在旁人眼中的英文力? •多益700分線上測驗題庫 相關問答 [ 航空 ]ASC和NTSB的異同 . [ 其他 ]請用按鍵精靈配合ASC轉換密碼登入.而不用抓圖. . [ 零件配備 ]BMW 318I E46時鐘 ASC問題 . [ 星座血型 ]Kim Rossi Stuart 的星座命盤 . [ VisualBasic ]PRINT ASC ?? . [ 桌上型電腦 ]Adaptec ASC-29160N可不可以用在蘋果電腦 . 更多 .其他回答(0) 意見(11) 相關評論(0) .目前沒有資料 001 意見者: 准提部林 ( 大師 5 級 ) 擅長領域: 商務應用 | VisualBasic 發表時間: 2013-01-09 10:20:02 [ 檢舉 ] ..嫺.63964 彧.53627 龥.63 堃.63 code不在範圍,算不算中文字? 002 意見者: 准提部林 ( 大師 5 級 ) 擅長領域: 商務應用 | VisualBasic 發表時間: 2013-01-09 10:39:31 [ 檢舉 ] ..CODE(B1) 只能判斷第1個字元!試試: 公式: =IF(ASC(B1)=BIG5(B1),0,1) VBA: Sub T20130109_1() If StrConv([B1], vbWide) <> StrConv([B1], vbNarrow) Then M% = 1 MsgBox M End Sub 繁簡體.日文,皆視為中文字, 排除〔全型〕英數符號字元! 不誤判〔Alt+Enter〕的換行! 003 意見者: Andy ( 初學者 5 級 ) 發表時間: 2013-01-09 10:44:00 [ 檢舉 ] ..謝謝 准提部林 大大 上列中文code不在範圍內,不影響目前需求,廠商名稱無此4種字元 另補充說明: 此程式碼是為了提醒輸入者:因為輸入代號(英文+數字)錯誤,無法變為中文 觸發格操作補充說明 1.觸發格輸入代號後,程式會判斷代號對應的廠商,將觸發格變為中文廠商名稱 1.1例如:觸發格輸入"B4000",程式會讓B4000變成"華碩" 1.2如果不小心輸入"B1000",而程式沒有可對應的廠商名稱可以取代 1.2.1,觸發後的儲存格結果就會是"B1000" 1.2.2此種情形就變成底色紅色,提醒輸入者更正 005 意見者: 准提部林 ( 大師 5 級 ) 擅長領域: 商務應用 | VisualBasic 發表時間: 2013-01-09 10:54:21 [ 檢舉 ] ..建議使用FIND.MATCH去判斷是否有符合的對應值! 006 意見者: Andy ( 初學者 5 級 ) 發表時間: 2013-01-09 12:25:00 [ 檢舉 ] ..謝謝 准提部林 大大指導! 1.Andy沒考慮周全! 判定非中文不能完全解決! 1.1不小心輸入中文而且不是需求的廠商名稱,資料就會錯誤! 2.1您指導後的程式碼如下:測試OK If StrConv(.Value, vbWide) <> StrConv(.Value, vbNarrow) Then .Interior.ColorIndex = 3 3.Andy沒用過FIND.MATCH寫VBA程式,請您指導! 3.1請您指導如何以FIND.MATCH判斷"裝一課", "裝二課", "加工課"... 3.1.1找不到廠商就變底色 007 意見者: Andy ( 初學者 5 級 ) 發表時間: 2013-01-09 12:57:04 [ 檢舉 ] ..謝謝 准提部林 大大指導! Andy另用下列方式測試程式碼的意義: 如果該字元只有全形字體,轉換成半形是無效的,數字或英文是可以轉換(半/全) 所以:中文轉換成全形=中文轉換成半形,數字轉換成全形<>數字轉換成半形 Sub T20130109_1() If StrConv([B1], vbWide) <> StrConv([B1], vbNarrow) Then M% = 1 [C1] = StrConv([B1], vbWide) [D1] = StrConv([B1], vbNarrow) MsgBox M End Sub 如果有錯,請您再指導 008 意見者: 准提部林 ( 大師 5 級 ) 擅長領域: 商務應用 | VisualBasic 發表時間: 2013-01-09 16:36:18 [ 檢舉 ] ..<範例檔>判斷輸入項目是否符合: http://www.funp.net/620087 需求與主題已不相關! 009 意見者: Andy ( 初學者 5 級 ) 發表時間: 2013-01-09 20:02:01 [ 檢舉 ] ..謝謝 准提部林 大大再指導! 1.原本以為您指的是將廠商名列在程式碼中,以FIND.MATCH函數處理 1.1現在知道用清單的方式,增減廠商方便而且程式碼不會雜亂 2.以 For Each迴圈的方式用FIND函數尋找相同的代號,在之前"尋找相同變色"的範例就有,Andy駑鈍沒有自己應用 3.學到"101: Next"語法以後可以應用在迴圈中,不跑不需要執行的程式碼 010 意見者: Andy ( 初學者 5 級 ) 發表時間: 2013-01-09 20:02:47 [ 檢舉 ] ..4."(雙數欄),不處理",這行程式碼防錯"佩服!!" 4.1彷彿知道Andy有設計觸發後一連串的資料處理 4.2防止:只用中文輸入廠商名稱,而之後一連串的資料處理卻沒有處理的嚴重錯誤 5.mFind(1, 2)是指找到編號的儲存格右邊一格 6. "Set"與"Is Nothing"的語法此次的研習心得更深刻,希望自己以後會運用 以上如果有錯,請再指導! 請您上答! 011 意見者: 准提部林 ( 大師 5 級 ) 擅長領域: 商務應用 | VisualBasic 發表時間: 2013-01-10 10:00:14 [ 檢舉 ] ..For Each xR In .Cells 目的:可從它處複製〔一至多個〕〔代號或名稱〕至B欄位,    程式會逐一儲存格處理!    若用不到可刪除這〔連續處理〕方式,    但留著也無礙手動輸入觸發的功能。 12下一頁 發表意見發表意見字數已達上限,要改成發表評論嗎?. 發表 取消 . 目前沒有資料 我要評論 註冊 會員登入 .公告: 知識團員轉粉絲全數完成 . HOT! 拍賣 | Vista電腦 熱門3C 雙核心 . .刊登贊助網站•寶盛商務軟體 管理一把罩 www.lancer.com.tw 老闆們的首選!極高效率的企業管理,低成本、操作方便,隨時支援跨部門處理。 www.lancer.com.tw •全新 Windows 8 www.microsoft.com 超快開機速度、電池效能再提升,搭配雲端整合服務,重要資訊隨身帶! www.microsoft.com •正航資訊-企業指定ERP系統 www.chi.com.tw 提昇營運績效,快速導入企業專用ERP!提供優質進銷存、薪資、MPS、MRP! www.chi.com.tw •POS系統-數碼動量 www.hotzsoft.com 國內專業POS系統廠商,超過8000家店家使用,應用範圍廣,歡迎洽詢。 www.hotzsoft.com •金賺錢POS 立即享14天免費 retail.hisales.hinet.net 中華流通雲全方位整合POS、CRM系統,掌握門市資訊更迅速,提升經營效率! retail.hisales.hinet.net •元志科技 商務軟體推薦 www.iemis.com.tw ERP研討會開始報名!成本運算概念、HR系統與二代健保、Dyn讓您一次掌握! www.iemis.com.tw.最新商務應用 發問中 已解決 .資料庫問題 -- 如何批次處理多筆查詢 VBA~依據條件增加四個指定數字組合的工作表。 countif mac word 2008 直書橫書在哪??? 更多 Outlook 2007 功能區 想用刷條碼來管理貨品儲位.進、銷、備料可看儲位 請教我用excel算薪水,拜託拜託 access 超連結問題 EXCEL VBA篩選問題 更多 精選關鍵字 ..符號 文書處理 庫存表 PowerPoint Outlook 金融 簡報 進銷存軟體 Spss 會計軟體 方程式 Word Excel Pdf Access OpenOffice 資料庫 客戶管理 Visio 庫存管理 Project 財務 專案管理 試算表 vba 傳真 進銷存 Office .知識搜尋 ...雅虎資訊 版權所有 (c) 2013 Yahoo! Taiwan. All Rights Reserved. 「本服務設有管理員」 服務條款隱私權政策..知識+ 之問答內容是由參與Yahoo!奇摩知識+ 之網友提供,僅供參考,Yahoo!奇摩不保證其正確性。 ... .

arrow
arrow
    創作者介紹
    創作者 phibrain284 的頭像
    phibrain284

    下載youtube影片軟體

    phibrainno17 發表在 痞客邦 留言(0) 人氣()


    留言列表 留言列表

    發表留言