【发布时间】:2017-05-06 19:26:22
【问题描述】:
如果可能的话,我想知道如何做到这一点。我已将 arrayC(26) 定义为:
Dim arrayC(26) As String
arrayC(26) = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
Dim i As Integer 'Position in the arrayC(26)
i = 1
基于另一个单元格的值,如果它的值为 3,我想从 A 转到 C。如果它的值为 5,我想从 A 转到 E。依此类推。
Dim j As Integer
j = 1
ReDim arrayCont(j) As Variant
让我们假设它从 A 到 C。所以,我希望在 arrayCont(j) 中我有以下值“A,B,C”。然后我会去 Cells(8,"C") 检查它是否等于 arrayCont(j) 中的值。如果是这样,我想从 arrayCont(j) 中删除该值。例如,考虑 Cells(8,"C") = "B"。然后我的 arrayCont(j) 将是“A,C”。我怎样才能做到这一点?
我创建的代码是:
Do While p <= sh1.Range("D6").Value
For p = 1 To sh1.Cells(6, "D").Value
If sh3.Cells(8, "C").Value = arrayC(p) Then
arrayCont(j) = arrayCont(j)
Else
arrayCont(j) = arrayC(p)
End If
Next p
j = j + 1
Loop
提前谢谢你。
【问题讨论】:
-
不是答案,但
arrayC不是您认为的那样 - 它的前 26 个条目有空字符串(从索引 0 开始),然后arrayC(26)是完整字符串的字母表。我相信你想要Dim arrayC() As String和arrayC = Split("A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z", ",") -
数组C = Split("A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q, R,S,T,U,V,W,X,Y,Z", ",") ?正如你所说,arrayC 从索引 0 开始,但如果我定义 i = 1 它从第一个条目开始,对吧?
-
用你的代码试试
Debug.Print (arrayC(26)),用我的代码试试Debug.Print (arrayC(25))看看有什么不同。 -
谢谢大家。我也会努力学习的:D
-
bobajob,我认为两者都是正确的,因为它什么都没有,也没有显示任何错误。