Board logo

標題: [發問] ➽➽請問如何刪除(前面三碼的數字) [打印本頁]

作者: peter95    時間: 2020-10-26 02:07     標題: ➽➽請問如何刪除(前面三碼的數字)

如何刪除(數字的前面三碼)

我有一堆數字
刪除前面三碼的數字
請問我該怎麼處理

可以做成VBA做成嗎??
或是如何處理

非常感謝大家幫忙,謝謝

附上說明圖片
[attach]32653[/attach]

附上檔案
[attach]32654[/attach]
作者: jcchiang    時間: 2020-10-26 12:30

回復 1# peter95

Sub ex()
Dim a As Object
Dim x%, QQ%
For Each a In Range([D10], [O10].End(4))
   For x = 1 To Len(a)
      If IsNumeric(Mid(a, x, 1)) = True Then QQ = QQ + 1
      If QQ = 3 Then a.Value = WorksheetFunction.Replace(a, 1, x, ""): QQ = 0: Exit For
   Next
Next
作者: peter95    時間: 2020-10-26 13:22

回復 2# jcchiang


感謝大大幫忙
解決困擾我很久的問題

現在變得好輕鬆
感謝
作者: samwang    時間: 2020-10-27 16:28

回復 1# peter95
  1. Sub tt()
  2. Dim Arr, i&
  3.     Arr = Range("D10:O" & Range("D10").End(4).Row)
  4.     For i = 1 To UBound(Arr)
  5.         For j = 1 To UBound(Arr, 2)
  6.             If InStr(Arr(i, j), "-") > 0 Then
  7.                 Arr(i, j) = Val(Trim(Mid(Arr(i, j), 6, 7)))
  8.             Else
  9.                 Arr(i, j) = Val(Trim(Mid(Arr(i, j), 5, 7)))
  10.             End If
  11.         Next
  12.     Next
  13.     Range("D10").Resize(UBound(Arr), UBound(Arr, 2)) = Arr
  14. End Sub
複製代碼

作者: 准提部林    時間: 2020-10-27 17:20

Sub TEST()
Dim Arr, R&, T$, C&, K%
With Range([D10], [O65536].End(3))
     Arr = .Value
     For C = 1 To .Columns.Count
     For R = 1 To .Rows.Count
         T = Arr(R, C)
         If T Like "*.*.*" Then Arr(R, C) = Mid(T, IIf(Left(T, 1) = "-", 6, 5)): K = 1
     Next R
     Next C
     If K = 1 Then .Value = Arr
End With
End Sub
作者: hcm19522    時間: 2020-11-1 10:42

https://blog.xuite.net/hcm19522/twblog/589440040
作者: peter95    時間: 2020-11-12 14:09

感謝大家幫忙,已解決
感恩
作者: Andy2483    時間: 2023-6-2 11:45

謝謝論壇,謝謝各位前輩
後學藉此帖練習陣列,學習方案如下,請各位前輩指教

執行結果:
[attach]36502[/attach]


Option Explicit
Sub TEST_1()
Dim Brr, i&, j%, xA As Range
'↑宣告變數
Set xA = Range([D10], [O65536].End(3)): Brr = xA
'↑令xA變數是D~O欄儲存格,令Brr變數是 二維陣列,以xA變數值帶入
For i = 1 To UBound(Brr)
'↑設陣列縱向迴圈
   For j = 1 To UBound(Brr, 2)
   '↑設陣列橫向迴圈
      Brr(i, j) = Mid(Replace(Brr(i, j), "-", ""), 5)
      '↑令陣列值去除"-"後,取第5字(含)後的字串
   Next
Next
xA = Brr
'↑令xA變數值是 Brr陣列值
Set xA = Nothing: Erase Brr
'↑令釋放變數
End Sub




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)