【发布时间】:2021-02-05 10:18:38
【问题描述】:
这是我从这里开始的问题的延续: How to looping rows and then columns in Excel
当我整夜为这个问题努力时,我偶然发现了另一个障碍: 回顾一下:
我有一个如下所示的表 (B1:L7) 其中 A1 是查找值,B 行是标题,C 到 L 行是数据。
N 列是最终结果的可视化表示。为清楚起见,它以粗体突出显示。
注意:由于 N 列存在条件格式以供进一步分析,因此非常不鼓励选择整行并转置粘贴的解决方案。
这是我打算对下面的宏执行的操作:
- 使用 A1 中的查找值循环 B 行以进行匹配 - DONE
- 一旦宏找到与查找值匹配的值(即:B6 显示与 A1 匹配的值),前 10 个值(C 到 L)(即:第 6 行)的值将循环显示值 - 完成李>
10 个值全部复制到 N 列(从 N1 开始并向下重复到 N10)(即:C6 值复制到 N1 ,D6 到 N2 等...)- 在遍历行时,选择范围并在单元格 N1 中粘贴转置值选择
Sub Looping_Click()
'Search columns
Dim c As Range
'Search rows
Dim r As Range
'Range to copy and paste values
Dim i As Range
For Each r In Range(Range("B1"), Range("B1").End(xlDown))
If r.Value = Range("A1").Value Then
MsgBox "Found values at " & r.Address
For Each c In Range(r.Offset(0, 1), r.Offset(0, 10))
MsgBox "Values is " & c.Value
''''''''''''''''''''''''''''''''''''''
MsgBox "Values is " & c.Value
r.Selection.Copy
Next i
''''''''''''''''''''''''''''''''''''''
Range("N1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Next c
End If
Next r
End Sub
问题是当我运行宏时,N 列没有粘贴任何值,并且 RunTimeError 438 弹出 我用 '''' 突出显示了相关/可疑的麻烦宏部分
【问题讨论】:
-
你知道你只能在转置时粘贴值,对吧?这不会覆盖条件格式。
-
或者您可以使用
Application.Transpose转置值。