我所拥有的是部分描述,我已将其分成单独的列。所有列都有标题,但并非所有列都包含每个零件的信息,例如:有些列可能包含尺寸、 Material 和温度,而另一些列可能只有尺寸和温度。我有一个函数可以连接它们,忽略空格。我想在连接的每个单元格之前引用列的标题。
期望的结果:
在 B6 中输入以下内容时 =ConcatenateRangeValve(G6:J6,",")
我想看看这些结果。 [项目]阀门,[类型]闸门,[DIM]28IN
[ ] 中的项目位于第 1:1 行中,我无法让我的函数引用该行与我所在的同一列以拉出标题。我认为它需要的是确定我正在使用的单元格在整个电子表格中的位置。我尝试通过定义 C、将其值设置为范围中第一个单元格的列号,然后在循环中将其增加 1 来实现此目的。我无法让它工作。所有其他部分都很好。见下文:
Function ConcatenateRangeValve(ByVal cell_range As Range, _
Optional ByVal seperator As String) As String
Dim newString As String
Dim cellArray As Variant
Dim i As Long, j As Long
Dim C As Long
cellArray = cell_range.Value
With Range("cell_range")
C = .Column
End With
For i = 1 To UBound(cellArray, 1)
For j = 1 To UBound(cellArray, 2)
If Len(cellArray(i, j)) <> 0 Then
newString = newString & (seperator & "[" & cells(1, C) & "]")
newString = newString & (cellArray(i, j))
End If
C = C + 1
Next
Next
If Len(newString) <> 0 Then
newString = Right$(newString, (Len(newString) - Len(seperator)))
End If
ConcatenateRangeValve = newString
End Function
预先感谢你们提供的任何帮助。
最佳答案
您可以通过多种不同的方式来完成此操作,但您可以像使用工作表一样引用范围内的单元格。如果您的命名范围包含标题:
Range("NamedRange").Cells(1,1)
如果您的命名范围从标题下方开始:
范围("NamedRange").Offset(-1,0)
对于所有其他情况:
范围(Cells(1,Range("NamedRange").Column))
关于excel - VBA-查找命名范围中第一个单元格的位置以引用电子表格的标题行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26802093/