返回列表 上一主題 發帖

[發問] 如何判斷儲存格中有冒號?

[發問] 如何判斷儲存格中有冒號?

判斷儲存格是否有冒號.rar (6.49 KB)

詳如附件,在B欄手動產生後,A、C欄自動產生(構思如下)

For i = 2 to
  if cells(i,2) 有冒號 Then
    cells(i,1) = ROW()-1
    Na = cells(i,2)
  else
    cells(i,3) = Na
Next

但是查找了網路只有找到Set cell = Range("B1:B2000").FIND(":", LookIn:=xlValues, LookAt:=xlPart)
套用到迴圈不知是否有類似的寫法?還請前輩們告知,感激不盡!

回復 1# av8d


可能有bug 幫忙測看看

判斷儲存格是否有冒號.zip (15.96 KB)

TOP

  1. Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  2. Dim i&, j&
  3. If Not Target.Column = 2 Or Len(Target.Value) = 0 Then Exit Sub
  4. i = Target.Row
  5. If i < 2 Or Right(Target.Value, 1) = ":" Then Exit Sub
  6. Cells(i, 1) = Application.Max(Range("a1:a" & i)) + 1
  7. j = i
  8. Do
  9.     j = j - 1
  10. Loop Until Right(Cells(j, 2), 1) = ":"
  11. Cells(i, 3).Value = Left(Cells(j, 2).Value, Len(Cells(j, 2).Value) - 1)
  12. End Sub
複製代碼

zz.zip (13.21 KB)

TOP

本帖最後由 singo1232001 於 2022-1-29 23:21 編輯

回復 1# av8d


內有3份檔案  都有修改過
大致說明一下所有控制
1. 開檔就會觸發不會出錯
2. 範圍選取刪除不會出錯
3. [a1:d1] 自動會增加標籤
4. [a2] 會自動放1  A欄序號會自動增加
5.  C欄 會自動搜尋上一個最近的冒號名稱

(v1)  
1.  有冒號的右邊C欄 會強制呈現空白

(v2)會比較特別一點
1.   有冒號的右邊C欄 會強制呈現空白
2.   b欄若 中間有空白位資料斷裂 就不觸發的功能
3.   b欄 選擇框若經過有 自動更新功能 通常是怕有上面資料需要修改

(v3)  
1.  有冒號的右邊C欄 會強制呈現空白
2.  b欄若 中間有空白位資料斷裂  一樣會觸發的功能
3.  b欄 選擇框若經過有 自動更新功能 通常是怕有上面資料需要修改

最後 不一定能在使用上完全剛好滿足您的需求
這兩份檔案頂多是盡量展示功能
若有功能想要提升 或消除 再請回報

判斷儲存格是否有冒號.zip (66.57 KB)

TOP

Sub TEST_A1()
Dim Arr, i&, T$, TT$, SS$
Arr = Range([a1], [b65536].End(xlUp))
For i = 2 To UBound(Arr)
    T = Arr(i, 2): SS = TT
    If Right(T, 1) = ":" Then TT = Replace(T, ":", ""): SS = ""
    Arr(i - 1, 1) = SS
Next i
[c2].Resize(UBound(Arr) - 1) = Arr
End Sub

TOP

隨意窩 "EXCEL迷"  blog  或https://blog.xuite.net/hcm19522/twblog
已收集8500篇 EXCEL函數

TOP

感謝singo1232001、ikboy、准提部林、hcm19522,
無論是前輩或版主,提供的VBA或函數寫法都受益良多,
由衷感謝,也祝大家新春佳節愉快。

TOP

回復 6# hcm19522

hcm19522前輩您好,看了您的函數受益良多,
有個進階問題,詳如附件,請問編號能否也能自動編碼呢?
冒號從1開始編,底下的1-1、1-2....第二個冒號從2開始編,底下的2-1、2-2....以此類推

判斷儲存格是否有冒號_2.rar (24.93 KB)

TOP

        靜思自在 : 得理要饒人,理直要氣和。
返回列表 上一主題