簡體   English   中英

選擇Excel單元格的一部分(不完整的單元格)並將其與其他單元格進行比較

[英]Select a part of Excel Cell (Not Complete Cell) and compare it to other cells

我有一部分代碼可供VBA運行,並在我的數據中發現非順序數字后添加空白行。 但是我的數據包含字母,並且代碼編寫方式僅比較整數序列。 有沒有一種方法可以操縱代碼以僅選擇單元格的一部分並比較該部分?

例如,我有以下順序:

100-CG-000-10008
100-CG-000-10009
100-CG-000-10011
100-CG-000-10012

想法是讓VBA在100-CG-000-10009之后插入一個空白行,因為在此之后它不再按順序排列。 我正在使用的代碼是:

Sub InsertNullBetween()
  'Update 20130829
  Dim WorkRng As Range
  Dim Rng As Range
  Dim outArr As Variant
  Dim dic As Variant
  Set dic = CreateObject("Scripting.Dictionary")
  'On Error Resume Next
  xTitleId = "KutoolsforExcel"
  Set WorkRng = Application.Selection
  Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
  num1 = WorkRng.Range("A1").Value
  num2 = WorkRng.Range("A" & WorkRng.Rows.Count).Value
  interval = num2 - num1
  ReDim outArr(1 To interval + 1, 1 To 2)
  For Each Rng In WorkRng
    dic(Rng.Value) = Rng.Offset(0, 1).Value
  Next
  For i = 0 To interval
    If dic.Exists(i + num1) Then
      outArr(i + 1, 1) = i + num1
      outArr(i + 1, 2) = dic(i + num1)
    Else
      outArr(i + 1, 1) = ""
      outArr(i + 1, 2) = ""
    End If
  Next
  With WorkRng.Range("A1").Resize(UBound(outArr, 1), UBound(outArr, 2))
    .Value = outArr
    .Select
  End With
End Sub

有什么辦法可以更改代碼,使其僅查看包含第三個“-”之后的整數的單元格的最后一部分?

您的代碼看起來太復雜了。 在這里,我將只為您提供從單元格中提取最后一個“-”之后的最后一個數字的方法:

Function ExtractNumber(r As Range) As Long
    ExtractNumber = Mid(r.Value, 1 + InStrRev(r.Value, "-"))
End Function

如果這些單元格中有純數字,那么假設您當前的代碼運行良好,則可以使用此功能對其進行自定義。 例如:

num1= ExtractNumber(WorkRng.Range("A1"))
num2 = ExtractNumber(WorkRng.Range("A" & WorkRng.Rows.Count))
...
dic(ExtractNumber(Rng)) = Rng.Offset(0, 1).Value

等等..

使用代碼進行編輯 ,僅插入行並處理任何間隙

你可以用這個

Option Explicit

Sub InsertNullBetween()
    Dim i As Long, gap As Long

    With Range("A1", Cells(Rows.count, 1).End(xlUp))
        For i = .Rows.count To 2 Step -1
            gap = Right(.Cells(i), 5) - Right(.Cells(i - 1), 5)
            If gap > 1 Then .Cells(i).Resize(gap - 1).Insert xlDown
        Next
    End With
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM