ColA ColB ColC ColD
akhil cha sam rush
34 28
我想提取与非空单元格对应的值。这里非空单元格包含34和28值。 所以,Formula应该理想地提取akhil和sam。
答案 0 :(得分:0)
使用.offset方法获取非空单元格上方的单元格内容。我不知道您的代码,但是假设您将值放在一个数组中,然后您将使用" for ...每个"循环检查您正在检查的单元格。循环,每次找到非空单元格时,使用.offset(-1,0).value(或.text)获取非空单元格上方单元格的内容。然后你需要推进一个计数器,以便下次找到非空单元格时,非空单元格上方单元格的内容将存储在数组中的下一个可用地址中。
如果使用数组,则还需要阅读Redim命令以在开始在其中存储数据之前调整数组的大小。你将需要至少两个循环,一个for ...每个循环来计算非空单元格的数量,以便你可以调整数组的大小,以及...每个循环来运行单元格并获取上面的数据非空单元格。
这是一个使用从D10到H10的小范围的示例,它可以满足您的要求,只需在即时框中显示结果。你可以用它做你想做的事。
Sub getdata()
Dim myrange As Range
Dim c As Range
Dim names() As String
Dim a As Long
Dim b As Long
Set myrange = ActiveSheet.Range("D10:H10")
a = 0
For Each c In myrange
If Not c.Value = "" Then a = a + 1
Next c
ReDim names(0 To a - 1)
b = 0
For Each c In myrange
If Not c.Value = "" Then
names(b) = c.Offset(-1, 0).Text
b = b + 1
End If
Next c
For b = 0 To a - 1
Debug.Print names(b)
Next b
End Sub