【问题标题】:How to select the range for pasting using vba如何使用 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 部分更详细地解释你的代码,正如你想要完成的那样。我现在猜想,你想复制一个特定的整行,转置到一列,到不同的列 - 我正确吗?
  • 好吧,基于此,我给了你答案。友情提醒:如果您的问题能帮助您解决问题,请接受您的一些答案。

标签: excel vba


【解决方案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) 但它没有显示正确的提前谢谢。
猜你喜欢
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-21
  • 1970-01-01
相关资源
最近更新 更多