2016-07-25 7 views
0

私はコピーが必要なテキストを検索するコードをいくつか持っていますが、これは数式を引き継いでいることに気付きました。セルの値を貼り付けるだけでいいです。私はそれを実現するために次のように編集する方法がわかりません。何かご意見は?数値だけをコピーして式を編集するコードを編集する

With Initiatives.Range("B3:B500") 

    Rcount = 0 

    For I = LBound(MyArr) To UBound(MyArr) 


     Set Rng = .Find(What:=MyArr(I), _ 
         After:=.Cells(.Cells.Count), _ 
         LookIn:=xlFormulas, _ 
         LookAt:=xlPart, _ 
         SearchOrder:=xlByRows, _ 
         SearchDirection:=xlNext, _ 
         MatchCase:=False) 
     If Not Rng Is Nothing Then 
      FirstAddress = Rng.Address 
      Do 
       Rcount = Rcount + 1 

       Rng.EntireRow.Copy NewSh.Rows(Rcount) 



       Set Rng = .FindNext(Rng) 
      Loop While Not Rng Is Nothing And Rng.Address <> FirstAddress 
     End If 
    Next I 
End With 
+2

'NewSh.Rows(RCOUNT).VALUE = Initiatives.Rows(Rng.Rowは)うまくあなたに感謝 –

+0

@ScottCranerを.value'!あなたが答えとしてそれを投稿するならば、私は質問を終わらせるためにそれを受け入れることを喜んで行うでしょう。副次的な問題として、フォーマットをコピーして式をコピーしないようにこれを修正する方法はありますか? – TonyP

答えて

1

にコピーコードを変更してみてください。

Rng.EntireRow.Copy 
NewSh.Cells(RCount,1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 

これはあなたの行全体をコピーし、あなたが望むペーストのどのような方法択一のオプションを提供します。

+0

これは非常にうまくいった。それは全体的なスピードを少し遅くしました。私はそれが期待されると思う。 – TonyP

+0

一度に全範囲で試してみるともっと速くなります:) –

0

代わり

Rng.EntireRow.Copy NewSh.Rows(Rcount)

宛先範囲の値を持つ宛先範囲にソース1つの範囲から対処=ソース値の範囲です。配列を使用して範囲の値を入力するのと同じです。

NewSh.Rows(Rcount).Value = Rng.EntireRow.Value

関連する問題