Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何在范围内循环并为参数赋值_Excel_Vba_Loops - Fatal编程技术网

Excel 如何在范围内循环并为参数赋值

Excel 如何在范围内循环并为参数赋值,excel,vba,loops,Excel,Vba,Loops,我面临一个有关Excel VBA代码的问题,希望任何人都能在这方面帮助我 我有一个Excel列,其范围为B2,直到B列的最后一行,如下所示: _________________ |Column B Header| |===============| |apple | |orange | |strawberry | |blueberry | |_______________| 我想将单元格B中的所有值都赋给一个带有一些附加文本的参数 例如: f

我面临一个有关Excel VBA代码的问题,希望任何人都能在这方面帮助我

我有一个Excel列,其范围为B2,直到B列的最后一行,如下所示:

_________________
|Column B Header|
|===============|
|apple          |
|orange         |
|strawberry     |
|blueberry      |
|_______________|
我想将单元格B中的所有值都赋给一个带有一些附加文本的参数

例如:

fruits = <Item>apple</Item><Item>orange</Item><Item>strawberry</Item><Item>blueberry</Item>
fruits=appleorange草莓蓝莓
这是到目前为止我的代码,在读取每个单元格后,我很难使每个值在后面继续

Dim c As Range
For each c In Range("B2:B" & lastrow)
   fruits = "<Item>" & c.Value & "</Item>"
Next c
尺寸c作为范围
对于范围内的每个c(“B2:B”和lastrow)
水果=“”&c.价值&“”
下一个c
如果有人愿意在这方面帮助我,我真的很感激。
谢谢。

要在循环时继续构建字符串,请将
水果
与自身连接起来:

fruits = fruits & "<Item>" & c.Value & "</Item>"
fruits=fruits&&c.值

或者您可以避免循环

Dim fruits As String
fruits = "<Item>" & Replace(Join(Application.Transpose(Range("B2", Cells(Rows.Count, 2).End(xlUp)).Value), "|"), "|", "</Item><Item>") & "</Item>"
将水果变暗为字符串
FROUTS=“”&Replace(连接(应用程序.转置(范围(“B2”),单元格(行数,2)。结束(xlUp)).Value),“|”),“|”和“

不带循环和变量标记名的函数

Function JoinedItems(rng As Range, Optional tag As String = "item") As String
    Dim a$, b$: a = "<" & tag & ">": b = "</" & tag & ">"
    JoinedItems = a & Evaluate("=TEXTJOIN(""" & b & a & """, False," & rng.Address & ")") & b
End Function

函数JoinedItems(rng作为范围,可选标记为String=“item”)作为字符串
Dim a$,b$:a=“”:b=“”
JoinedItems=a&Evaluate(“=TEXTJOIN(”“&b&a&”“”),False,“&rng.Address&”)&b
端函数

fruits=fruits&&c.Value&
Hi@BigBen,非常感谢您的帮助。它工作得很好。