2017-07-03 55 views
1

我有一些不同的请求。我试图找到解决方案,我需要VBA代码去特定的行号,然后在对话框中返回特定行上的值。我有一个解决方法,有很多,我有列A中的每个单元格通过使用= Row()匹配相关的行,然后将单元格返回到右侧,但我想知道是否有更优雅解决方案,并消除额外的列,只查找行号? 欢呼 ANQExcel VBA转到特定的行号,然后返回右边的值

+0

您的VBA是“Sub”还是“Function”? –

+0

你能提供你的代码吗? –

+0

@EganWolf我的代码是 'txtCompany.Value = Application.VLookup(“R”&txtLineNumber.Value,Sheets(“data”)。Range(“A2:J10000”),2,0)' R是文本因为Vlookup不喜欢在我的电子表格行1700列出的R1700列A – anq812

回答

1

功能
使用Application.Caller.Row让行。本示例从包含调用此函数的公式的单元格的行的行1消息中获取值。

MsgBox(ws.Cells(Application.Caller.Row, 1))

通过你行过程中,你需要什么
循环。下面是一个示例,它循环并消息列1中的值。

Dim ws As Worksheet 
Set ws = ActiveWorkbook.Sheets("Sheet1") 

Dim iRow As Integer 
'You starting row in the actual sheet 
iRow = 1 
Dim iEndRow As Integer 
'Set this. 
iEndRow = 100 


For iRow = 1 To iEndRow Step 1 
    'loop through each row. 
    'message what's in column 1 for this row. 
    MsgBox (ws.Cells(iRow, 1)) 
Next iRow 
+0

在列表的开头,因为Vlookup不喜欢搜索数字谢谢迈克尔,但是对于 'iRow To iEndRow Step 1' 作为语法错误 – anq812

+0

出现对不起,它看起来像你需要提供在循环中开始的值。尝试编辑的答案。 –

+0

干杯迈克尔,我会给它一个镜头 – anq812