【发布时间】:2020-06-07 00:16:42
【问题描述】:
从多列范围我想在一个过程中通过将每个单元格值(如果需要)拆分为多个字符串来创建一维数组?,转换?为整数。值将由特定字符分隔,也必须忽略其他字符
这... ..会导致 1、2、3、4、7、9、11、13、54、67
我现在正在使用的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim arr As Variant
arr = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Value 'Convert to 2-dim and use non numerical values from adjacent column, see "Excha.."
Dim varr As Variant
varr = Range("C1:E" & Range("A" & Rows.Count).End(xlUp).Row).Value 'Split if some of the cells contains multiple values delimited by character??
Dim M As Integer
M = Application.WorksheetFunction.Max(r.Offset(, 2)) 'Exchange cell ref to Max(len("x2"
TextBox1.Text = ""
Dim x, y, match As Boolean, i As Integer, L As Integer
i = 1
For Each x In arr
match = False
For Each y In varr
If x = y Then
match = True
Exit For
End If
Next y
If Not match And Len(x) <> "" Then
If i = 1 Then
TextBox1.Text = x & ". " & Worksheets(1).Cells(x, 2).Value 'Exchange cell ref to "x2"
Else
TextBox1.Text = TextBox1.Text & String(L, " ") & x & ". " & Worksheets(1).Cells(x, 2).Value 'Exchange cell ref to "x2"
End If
L = M + 5 - (Len(Worksheets(1).Cells(x, 1).Value) + Len(Worksheets(1).Cells(x, 2).Value)) 'Exchange cell ref to len(x)& len("x2")
End If
i = i + 1
End If
Next
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
你能简单解释一下你的代码在哪里失败了吗?问题是什么?一旦您解释我们将能够提供帮助
-
为什么这是 Worksheet_Change?
-
您的意思是 1 个逗号分隔的字符串,其中包含该范围内的所有数值吗?如果是这种情况,我会考虑正则表达式。
-
@Pierre44 抱歉,该代码仅适用于包含整数的单元格,将其发布为上下文
-
@Jeeped 它不断用可用资源更新文本框