如何使用 vba 选择粘贴范围
Posted
技术标签:
【中文标题】如何使用 vba 选择粘贴范围【英文标题】:How to select the range for pasting using vba 【发布时间】:2012-09-27 08:30:56 【问题描述】:我编写了一些代码来选择特定的行并使用 paste-special 属性将其按列粘贴。它工作正常我的代码是:
lngRow = Me.TextBox4.Value
strCol = Me.TextBox5.Value
Set rng = Range("A:A").Find(What:=lngRow, LookIn:=xlValues, LookAt:=xlWhole)
If rng Is Nothing Then
MsgBox "Value not found in row 1", vbExclamation
Else
Range(rng, rng.End(xlToRight)).Copy
Range("A1:E3").Columns(strCol).Offset(, 1).PasteSpecial Transpose:=True
Range("A1:E3").Rows(1).Copy
Range("A1:E3").Columns(strCol).PasteSpecial Transpose:=True
endif
这里的问题是我正在使用 范围(rng,rng.End(xlToRight))。复制 复制值 对于粘贴,我使用 Range("A1:E3").Columns(strCol).Offset(, 1).PasteSpecial Transpose:=True。
如何粘贴所有复制的值?因为如果值在 F 列中,则此宏将不会粘贴这些值。
【问题讨论】:
请在 else 部分更详细地解释你的代码,正如你想要完成的那样。我现在猜想,你想复制一个特定的整行,转置到一列,到不同的列 - 我正确吗? 好吧,基于此,我给了你答案。友情提醒:如果您的问题能帮助您解决问题,请接受您的一些答案。 【参考方案1】:此代码将从第 1 行开始粘贴整行(如果找到)转置到给定的列。
如果它必须从不同的行或列开始,您应该能够适应。
lngRow = Me.TextBox4.Value
strCol = Me.TextBox5.Value
Set rng = Range("A:A").Find(What:=lngRow, LookIn:=xlValues, LookAt:=xlWhole)
If rng Is Nothing Then
MsgBox "Value not found in row 1", vbExclamation
Else
Range(Rng, Rng.End(xlToRight)).Copy
Cells(1, strCol).PasteSpecial Transpose:=True
End If
【讨论】:
非常感谢但我想将值粘贴到列中(strcol).offset(,1)。 好的,没问题,所以你只是用Columns(strCol).Offset(, 1).PasteSpecial Transpose:=True
而不是Cells(1, strCol).PasteSpecial Transpose:=True
。
你好,谁能告诉我如何在 vba 中将 intger 转换为chartcer?。我正在使用 Chr(dest + 64) 但它没有显示正确的提前谢谢。以上是关于如何使用 vba 选择粘贴范围的主要内容,如果未能解决你的问题,请参考以下文章