我是excel宏中的新手,如果选择任何行,则需要从整行中提取数据。假设有一张包含以下数据的表格:
s.no amount account
1 1234 1234
2 2345 6359
如果我选择第1行,则它给出整行的值:
1 1234 1234
我已经尝试过多次提取价值,但我无法获得价值。
答案 0 :(得分:1)
您必须循环遍历行中的单元格并连接值。我所知道的功能没有返回"值"排。例如:
Dim objSheet As Worksheet
Set objSheet = Sheets(1)
Dim intLastCellIndexInRow As Integer
intLastCellIndexInRow = ActiveCell.SpecialCells(xlLastCell).Column
Dim i As Integer
Dim strRowValue As String
For i = 1 To intLastCellIndexInRow
strRowValue = strRowValue & " " & objSheet.Cells(ActiveCell.Row, i)
Next
MsgBox strRowValue
答案 1 :(得分:0)
一行的值是该行中值的数组
RowData = Range("A1:C1").Value
将用代码填充数组“ RowData”
RowData = Array(1,1234,1234)
如果您想要像rory.ap回答的字符串,请使用Join
'Same Msgbox result as rory.ap's Answer
strRowValue = Join(RowData, " ")
MsgBox strRowValue
因此要在一行中以空格(“”)分隔的字符串作为一行
strRowValue = Join(Range("A1:C1").Value, " ")
现在,我将范围“ A1:C1”放入,因为您的数据是A列到C列
整个行1是代码
Rows(1)
但这包括直到MAX的每个列,我们真的不希望在字符串中甚至不需要处理。
Excel可以通过从起点使用.CurrentRegion来检测您的数据。因此,如果我们以A1作为起点,则获取CurrentRegion,然后将其限制为第一行,我们将仅获取所使用的列。
Cell("A1").CurrentRegion.Rows(1)
'Is Equivalent to Range(A1:C1) on your Data Example
Cell("A1").CurrentRegion.Rows(2)
'Is Equivalent to Range(A2:C2) on your Data Example