Board logo

標題: [發問] 如何判斷儲存格中有冒號? [打印本頁]

作者: av8d    時間: 2022-1-29 16:31     標題: 如何判斷儲存格中有冒號?

[attach]34636[/attach]

詳如附件,在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)
套用到迴圈不知是否有類似的寫法?還請前輩們告知,感激不盡!
作者: singo1232001    時間: 2022-1-29 20:37

回復 1# av8d


可能有bug 幫忙測看看
作者: ikboy    時間: 2022-1-29 21:04

  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
複製代碼

作者: singo1232001    時間: 2022-1-29 23:13

本帖最後由 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欄 選擇框若經過有 自動更新功能 通常是怕有上面資料需要修改

最後 不一定能在使用上完全剛好滿足您的需求
這兩份檔案頂多是盡量展示功能
若有功能想要提升 或消除 再請回報
作者: 准提部林    時間: 2022-1-30 09:14

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
作者: hcm19522    時間: 2022-1-30 14:56

https://blog.xuite.net/hcm19522/twblog/590236195
作者: av8d    時間: 2022-1-31 00:11

感謝singo1232001、ikboy、准提部林、hcm19522,
無論是前輩或版主,提供的VBA或函數寫法都受益良多,
由衷感謝,也祝大家新春佳節愉快。
作者: av8d    時間: 2022-2-1 12:47

回復 6# hcm19522

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

[attach]34642[/attach]




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