VBA调用以获取Excel中整行的值

时间:2014-04-02 13:16:32

标签: excel vba

我是excel宏中的新手,如果选择任何行,则需要从整行中提取数据。假设有一张包含以下数据的表格:

s.no amount account

1    1234    1234

2    2345    6359

如果我选择第1行,则它给出整行的值:

1   1234  1234

我已经尝试过多次提取价值,但我无法获得价值。

2 个答案:

答案 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