首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为每一行获取特定列的值

为每一行获取特定列的值
EN

Stack Overflow用户
提问于 2017-06-06 20:31:11
回答 1查看 1.3K关注 0票数 0

我需要编写脚本,它允许我以xml格式导入数据。它为除变量之外的每一个顺序生成我需要的代码块。我需要遍历范围内的所有行,并从列"G“中获取值。问题是它只获得范围内第一行的值。

代码语言:javascript
运行
复制
Dim rng As Range, row As Range
Set rng = Range(Range("G11"), Range("G11").End(xlDown))
For Each row In rng.Rows
Dim partner_id As String
partner_id = Cells(rng.row, 7).Value
line9 = "<typ:id>" & partner_id & "</typ:id>" & vbNewLine

...

正如你所看到的,我不是一个程序员,但我真的需要得到那个partner_id。如有任何建议,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-06-06 20:49:44

您确实应该避免使用与Excel对象使用的常用方法相同的变量名称,例如,将row更改为myRow。这将突出说明我认为是什么引起了您的问题--使用rng.row,使用重命名的变量,您可能会将其编写为rng.myRow --这将导致编译错误。

rng.row只是返回rng中第一个单元格的行号,与名为row的变量无关。

代码语言:javascript
运行
复制
Dim rng As Range, myRow As Range
Set rng = Range(Range("G11"), Range("G11").End(xlDown))
'There's no need to use "rng.Rows" when each row is a single cell anyway
For Each myRow In rng
    Dim partner_id As String
    'because myRow is a single cell, we can just use its Value
    partner_id = myRow.Value
    line9 = "<typ:id>" & partner_id & "</typ:id>" & vbNewLine

    ...

FWIW -如果变量名称和编码风格保持不变,则可以使用row.Row而不是rng.Row来修复代码。

代码语言:javascript
运行
复制
Dim rng As Range, row As Range
Set rng = Range(Range("G11"), Range("G11").End(xlDown))
For Each row In rng.Rows
Dim partner_id As String
partner_id = Cells(row.Row, 7).Value
line9 = "<typ:id>" & partner_id & "</typ:id>" & vbNewLine

...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44399311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档