2017-09-20 1 views
0

vba code。欄全体ではなく範囲内の値をペーストしてください

問題:私は以下のコードを使って、欄Aの予算シートにtextAを見つけます。 d4:d15のペースト。しかし、それはちょうどその範囲の代わりに列Dを介して貼り付けています。

ヘルプ:vbaをコピーするだけでB:M行の予算シートから列d4:d15に貼り付けます。

Sheets("Budget").Select 
Columns("A:A").Select 
On Error Resume Next 
Selection.Find(What:="phh budget", After:=ActiveCell, LookIn:= _ 
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ 
xlNext, MatchCase:=False, SearchFormat:=False).Activate 
If Err.Number = 91 Then 
MsgBox "ERROR: 'PHH budget' could not be found." 
End 
End If 


intRow = ActiveCell.Row 
Rows(intRow & ":" & intRow).Copy 
Sheets("PHH").Select 
range("D3").Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=True 

range("B1").Copy 
Application.CutCopyMode = False 
Selection.Copy 
range("D3:D15").Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlMultiply, _ 
    SkipBlanks:=False, Transpose:=False 
Columns("D:D").EntireColumn.AutoFit 

私は何か助けていただきありがとうございます。

答えて

2

あなたの最初のコードで、あなたが行全体をコピーして貼り付けているので、あなたはRange("B" & intRow & ":M" & intRow).Copy

Rows(intRow & ":" & intRow).Copyを変更する必要があります。 2番目のコードでは、単に列BからMにコピーします。

そして、それが意図したものかどうかわかりませんが、貼り付けられた値を掛けています。

ヒント:

  1. あなたはHow to avoid using Select in Excel VBAを避ける必要があります。したがって、ワークシートと範囲を宣言します。
  2. Range.Copyでthis wayをコピーし、Transposeでペーストしてみます。
  3. あなたが選択を取り除くしようとした場合、あなたは代替もすべきRange.Find Method
  4. の例を使用してみてください:.Select/.Activate/Selection/Activecell/Activesheet/Activeworkbook
+0

はあなたが二度目のあなたの助け今日danieltakeshi感謝:Dそれは働きました。私はあなたのヒントを読んで、将来私はより良いことができます。また、私はB1の値を乗じています。数百万ドルで表示されています。 – Simi

関連する問題