VBA Excel:用交替单元格填充字符串

VBA Excel:用交替单元格填充字符串,vba,excel,Vba,Excel,我有两行单元格,用于创建字符串。关键是,我需要创建一个字符串来交替两组单元格。下面的例子。这两行单元格需要这样显示 1010213041506170819 基本上,振幅中的每个单元格前面都有一个来自符号的单元格 有什么想法吗?非常感谢 你可以这样做,但这个字符串似乎不是很有用,也许有更好的方法来完成你想要的事情: Dim rowAmplitude As Long rowAmplitude = 4 ' CHANGE THIS Dim rowSign As Long rowSign = 6 ' C

我有两行单元格,用于创建字符串。关键是,我需要创建一个字符串来交替两组单元格。下面的例子。这两行单元格需要这样显示

1010213041506170819

基本上,振幅中的每个单元格前面都有一个来自符号的单元格

有什么想法吗?非常感谢


你可以这样做,但这个字符串似乎不是很有用,也许有更好的方法来完成你想要的事情:

Dim rowAmplitude As Long
rowAmplitude = 4 ' CHANGE THIS

Dim rowSign As Long
rowSign = 6 ' CHANGE THIS

Dim colStart As Long
colStart = 4 ' CHANGE THIS

Dim colEnd As Long
colEnd = 10 ' CHANGE THIS

Dim msg As String

Dim c As Long
For c = colStart To colEnd
    If msg <> "" Then msg = msg & " "
    msg = msg & Cells(rowSign, c).Value
    msg = msg & " "
    msg = msg & Cells(rowAmplitude, c).Value
Next

如果这是您的问题中的唯一要求,您可以使用一个for循环轻松地将这两行放在一起:

硬编码版本,假设数据点位于单元格A1:

for i = 1 to 9
ans = ans & Cells(4, i+3) & Cells(2, i+3)
next  

现在我让你自己尝试一些非硬代码的东西

也许像这样,没什么特别的

Sub test()
Range("D3").Activate
Do Until ActiveCell.Offset(-1, 0).Value = ""
    ActiveCell.Value = ActiveCell.Offset(1, 0).Value & ActiveCell.Offset(-1, 0).Value
    ActiveCell.Offset(0, 1).Select
Loop
End Sub
非VBA解决方案:

你可以看到细胞B5的公式在起作用。将其向右拖动时,将基于结果生成的字符串向左拖动

单元格A5是:

=A3 & " " & A1 & " "
单元格B5是:

=A5 & B3 & " " & B1 & " "
当然,我在这里的数字之间加了空格,但这不是必须的,这只是你的问题的格式。我看不到上面的任何答案提供了这一点,因此如果您希望省略空格,只需删除所有[&]组合

比如:


谢谢你,伙计!Gunna说实话…你的设计似乎有点过头了…我用Alex的代码的一个变体解决了这个问题。对于i=4到N+3 hexVal=hexVal&Cells4,i&Cells3,i下一步i如果向工作表中添加行,会发生什么情况?这时,命名范围和明确说明所有内容就派上了用场。您提出了一个很好的观点,但在这种情况下,我不会添加行。谢谢你!从理论上讲,使用我使用的方法,我可以继续添加行,没有问题,因为我可以按照我需要的顺序放置每个单元格x,I。在宏中硬编码行号和列号是一个坏主意。Perfect正是我所需要的。
=A5 & B3 & " " & B1 & " "
=A5 & B3 & B1