- 帖子
- 396
- 主題
- 12
- 精華
- 0
- 積分
- 425
- 點名
- 0
- 作業系統
- Win10
- 軟體版本
- Office 2016
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台中
- 註冊時間
- 2013-7-2
- 最後登錄
- 2024-8-23
  
|
8#
發表於 2014-12-23 11:15
| 只看該作者
本帖最後由 owen06 於 2014-12-23 11:20 編輯
回復 7# sheau-lan
補充一下,你用LEFT、MID、RIGHT去抓出特定字串後,雖然你看到的樣貌是數字,但他的本質其實是文字,這樣你vlookup是比不出來的,所以你還要再把他*1,他的 本質才會改變為數值,而你的檔案前面有個F,他就是文字格式,因此不需要再用*1。
改這樣你試看看- Private Sub Worksheet_Change(ByVal Target As Range)
- On Error GoTo 99
- With Target
- code = Left(.Value, 6)
- num = .Offset(-1, -1)
- If .Row >= 3 And .Column = 2 And .Offset(-1, 0) <> "" Then
- If .Value = "" Then
- .Offset(0, -1) = ""
- .Offset(0, 5) = ""
- ElseIf .Address = [b3].Address Then
- .Offset(0, -1) = "0001"
- .Offset(0, 5) = Application.VLookup(code, Sheet2.[a1:b65536], 2, False)
- Else:
- .Offset(0, -1) = Application.Text(num + 1, "0000")
- .Offset(0, 5) = Application.VLookup(code, Sheet2.[a1:b65536], 2, False)
- End If
- End If
- End With
- 99
- End Sub
複製代碼 |
|