[問題]excel 問題 (在2000下會產生另一種問題)皆己解決 謝謝各位@@

最近在整理EXECEL數字的資料
但我試了很久就是用不出來
所以上來向各位高手請教一下

比如說我有很多數字 分為 5碼和3碼
而5碼的數字前要加一個英文 H
3碼的數字前要加一個英文 P

請問有辦法在輸入時就可以自動代入嗎

範例
[問題]excel 問題 (在2000下會產生另一種問題)皆己解決 謝謝各位@@

ps.在a1輸入時a1的值自動變成我要的不是在另外一格產生
(己解決)
---------------------------------------------(新的問題)------------------------------------------------------
以下是在excel中新產生的問題
因為公司是用excel 2000版本的 而我在2003使用s854118所撰寫的程式碼時
是正常可以使用的 但當我貼到2000的 巨集中在 紅色的地方會顯示語法諎誤
是因為2000vb程式庫不同嗎 請大大告訴我要如何修正

Private Sub Worksheet_Change(ByVal Target As Range)

y = Target.Cells.Row
x = Target.Cells.Column
If x = 1 And y <= 14 Then

cell = Target.Cells(1, 1)
s = Mid(cell, 1, 1)
If (s <> "H" And s <> "P") Then
If (Len(cell) = 3) Then
Target.Cells(1, 1) = "P" & cell
ElseIf (Len(cell) = 5) Then <-- 一直會跳出 錯誤的結尾 (正確文字忘了)
Target.Cells(1, 1) = "H" & cell
End If
End If

End If

End Sub
--------------------------------------------------------------------------------------------------------------
結果是 小弟自己打錯字造成的問題 一.一(被拖去邊邊 毒打中~~~~)
文章關鍵字
要excel判斷是三碼還是五碼的數字再做不同的加字,這可能要等更強的人。

小弟提供一下,只輸入12345然後出來是h12345的辦法。

按右鍵,儲存格格式中,數字,類別中,選自訂。

加一個h#####。收工!
請在右邊的儲存格填入下列
要包含等號喔

J2指的是來源儲存格

=IF(OR(LEN(J2)=5,LEN(J2)=3),IF(LEN(J2)=5,"H"&J2,"P"&J2),"")
最想說的話,Miss You To My Dear Amber



請參考
homoso wrote:
我要的不是在另外一格產生


抱歉!答非所問
謝謝各位大大熱心的幫忙
JerryChen 大大別這麼說
您的方法是可行的


因為我也是用if來判斷
但今天看到來公司維修的工程師它的excel竟然可以在"來源值"的欄位進行變更是我覺的不可思意的
我問了他 他也不知如何設定 是公司其它人做的
而欄位中也沒有任何公式
而在巨集指令中因為有加密所以也看不到

我自己試了很多辦法就是弄不出來(包含自動化格式和驗證功能也試過了)

想問的原因是如果知道的話可以減少很多人員keyin上輸入的錯誤
如果有高手知道如何做的話 可以指導一下好嗎(巨集指令也行 在下巨集能力很差 一.一||||)
可能是巨集吧~~
Alt+F11開啟VB編輯器..

然後在Sheet1裡面貼上下面程式碼就可以了吧


Private Sub Worksheet_Change(ByVal Target As Range)
cell = Target.Cells(1, 1)
s = Mid(cell, 1, 1)
If (s <> "H" And s <> "P") Then
If (Len(cell) = 3) Then
Target.Cells(1, 1) = "P" & cell
ElseIf (Len(cell) = 5) Then
Target.Cells(1, 1) = "H" & cell
End If
End If
End Sub
謝謝 slanla2007 的回答
果然還是用巨集寫會快很多
但是現在第二個問題產生了
如果只寫這樣會變成所有欄位都會執行這個巨集指令
那我現在如果要限定某一範圍內進行這個巨集的話要怎麼寫指令呢??
比如說 A1:A14 的範圍

另外 可以請問 slanla2007 大大可以建議幾本基礎的教寫EXCEL VB書嗎
因為有去找過了都相當的艱深不好懂 因為真的很想學好寫EXCEL VB的
功能因為公式的部份限制真的相當多 往往VB輕易解決的問題在公式卻因限制條件而難以執行
幫 slanla2007 大大回一下..
將上述的excel 加上位置的判斷就可以囉..

Private Sub Worksheet_Change(ByVal Target As Range)

y = Target.Cells.Row
x = Target.Cells.Column
If x = 1 And y <= 14 Then

cell = Target.Cells(1, 1)
s = Mid(cell, 1, 1)
If (s <> "H" And s <> "P") Then
If (Len(cell) = 3) Then
Target.Cells(1, 1) = "P" & cell
ElseIf (Len(cell) = 5) Then
Target.Cells(1, 1) = "H" & cell
End If
End If

End If

End Sub
最想說的話,Miss You To My Dear Amber
不好意思 又上來麻煩各位大大了
最近開使看EXCEL VBA的書了 但還是看不太懂

今天將之前大大提供的程式碼在2000 執行時發生了問題
是不是2000和2003能支援的命令不一樣呢??
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!