在a1輸入
在b1顯示
在其他地方, 如c欄輸入事先的文字
a1 = 1 (輸入的數字)
b1 = index($c:$c)
c1 = 我愛你
c2 = 我不愛你
c3 = 我非常愛你
當a1 = 1, b1 = 我愛你
當a1 = 2, b1 = 我不愛你
當a1 = 3, b1 = 我非常愛你
供你參考 ^.^
在a1輸入
在b1顯示
在其他地方, 如c欄輸入事先的文字
a1 = 1 (輸入的數字)
b1 = index($c:$c)
c1 = 我愛你
c2 = 我不愛你
c3 = 我非常愛你
當a1 = 1, b1 = 我愛你
當a1 = 2, b1 = 我不愛你
當a1 = 3, b1 = 我非常愛你
供你參考 ^.^
既然這麼嚴格的話...
那就用巨集嚕...
excel裡的函數好像沒有輸入後還可以改變被輸入儲存格的功能
如果只能用巨集的話
或許用沙兄拉油的方法會複製很多次...
如果用迴圈的方式就簡單多了...
你在sheet2裡把要對應的數字及字串全部打好(a欄打數字b欄打字串)
然後在sheet1裡寫巨集
當a1有值輸入並按下enter時,就call迴圈去比對sheet2的a欄
若找到就把b欄對應的值寫回sheet1的a1儲存格就好啦...
回覆kankan兄:
是的,我就是要用vlookup函數
這個函數非常好用,不是嗎~~~呵呵~~~
最初由 陶陶 發表
在同一儲存格中數字為1--70的隨機變數(就是等待使用者輸入)
但是數字對印文字字串不能改變
如果這是單一儲存格可以這樣做嗎?
PS:Oyazi這就是如此嚴格(不要問我為什麼)
請問Oyazi兄:
那巨集又要如何寫程式碼?
這樣好了...
你把你那個有70個字串的檔案給我...
我寫好了就回覆給你讓你看...
最初由 陶陶 發表
請問Oyazi兄:
那巨集又要如何寫程式碼?
沙兄, 巨集不用太複雜吧?
如沙兄範例, 先在 Sheet2 的 A 欄依列號
輸入對照的中文字. Sheet1 的巨集如下--
Private Sub Worksheet_Change(ByVal Target As Range)
If Not IsNumeric(Target) Then Exit Sub
a = Sheets(2).Cells(Target, 1)
If a = "" Then Exit Sub Else Target.Value = a
End Sub
這個巨集裡, 當輸入的數字在 Sheet2 找不到對應的
內容時, 就維持原數字不變. 可視需要修改.
使用 Worksheet_Change 事件確實可以做到即時改變的.
Leon 大大.... ^^
沒有你指導的一天我的VBA日子就漸進黑暗....@@"
因為問問題的人說他要限制在A1∼A70才要判斷
所以我才設定一個可以自行設定判斷的區域
然後有一點我一直弄不好,那就是如果我用貼上的方式
又要讓貼上的區域如果有貼入判斷區與非判斷區,其屬於判斷區內儲存格依舊能全部判斷
所以腦筋就就變的很混亂...
已經很久沒有您的教誨了,小弟會加緊努力追趕您的~~
好膽麥走~~
開玩笑的 ^^
就算要限制在A1∼A70, 判斷欄號和列即可.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Or Target.Row > 70 Then Exit Sub
On Error GoTo 1
a = Sheets(2).Cells(Target, 1)
If a = "" Then Exit Sub Else Target.Value = a
1
End Sub
這個巨集改用 On Error 的方式, 可避免輸入
非數字或 0 時導致錯誤. 另外, 此巨集只適用
輸入單一格時 -- 若一次貼上多格將不起作用.
其實這題在實際應用上通常也是如此.
首先要感謝各位對於這個問題的回答
小弟因工作所以有一、二天未能來此
對於各位所回答的方式試用問題如下
1.沙拉油兄的第一種方法:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target = 5 Then Target = "我愛妳"
End Sub
用到十分之一(也就是第七個儲存格)電腦就顯示記憶體不足(公司電腦沒辦法)
所以無法成功
2.Oyazi兄、cchunghk 兄的方法a1=5 b1=文字字串
我的疑問是一個儲存格數字(a1)為隨機輸入(1-70)對印文字字串(b1)為固定
這是單指一個儲存格而言,現今我有五百個儲存格每個都要像單一儲存格如此
這樣也可以嗎?
至於Oyazi兄所要的70個文字字串的檔案
就要請Oyazi兄自己打一下嘍(因為這是業務上的事情不方便啦對不起嘍)
每一個文字字串一個字就好了 不敢太麻煩你
3.Leon Chou兄、沙拉油兄 所提的巨集還要請兩位大大費心一下
因為我對excel是一竅不通所以謝謝兩位大大
對於我的問題我要再次感謝各位的回答
P.S不管任何方法、能完成就是好方法。
一、先在 Sheet2 的 A 欄依列號輸入對照的中文字,例:
│A │
─┼──┼
1│中國│
2│情愛│
3│心情│
:│: │
二、選取 Sheet1,在工作表名稱標籤按右鍵 >> [檢視程式碼]
貼上這個巨集:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Or Target.Row > 70 Then Exit Sub
On Error GoTo 1
a = Sheets(2).Cells(Target, 1)
If a = "" Then Exit Sub Else Target.Value = a
1
End Sub
三、按 Alt + Q 回到 Sheet1 工作表,試試看。
在 Sheet1 的 A 欄 (A1~A70) 輸入數字,那一格
的內容就會變成 Sheet2 對應的中文字。
書籤