2017-05-13 9 views
0

セルまたは範囲から値を取得するサブルーチンを作成しようとしていますが、セルの値の「{NAME}」の出現を置き換えようとしています"John"、貼り付け先の変更範囲を選択してコピーし、元のセルの値を "{NAME}"に戻します。Excel VBA、置換値、コピー、元に戻して貼り付けます

ロジックが動作しますが、クリップボードの内容を貼り付けるたびに「John」ではなく「{NAME}」の値が表示されます。

Sub BrandTemplate() 
    If Worksheets("Sheet1").OLEObjects("Option_1").Object.Value = True Then 
     Dim tmp As String 
     Dim n As String 
     Dim ss as String 
     tmp = "John" 
     ss = Worksheets("Sheet1").Range("A1").Value 
     n = Replace(ss, "{NAME}", tmp) 
     MsgBox n 
     Worksheets("Sheet1").Range("A1").Value = n 
     Worksheets("Sheet1").Range("A1").Copy 
     ss = Worksheets("Sheet1").Range("A1").Value 
     MsgBox ss + " ss content after replace" 
     n = Replace(ss, tmp, "{NAME}") 
     MsgBox n + " n content after restore" 
     Worksheets("Sheet1").Range("A1").Value = n 
     MsgBox n + " n cell content" 
    End If 
End Sub 

私は、Excelを使用すると、セルの...だけではなく、静的なコンテンツを貼り付けてコピーするように指示するときにリアルタイムでコピーする選択したセルの内容を取得すると信じています。

これを行う方法はありますか?

フォーム2.0オブジェクトを含める代わりに、文字列をクリップボードに直接コピーすることもできますか?

私に教えてもらえますか? !ここ

お時間をありがとうが....

+0

は、私がこれを正しく理解しています:あなたがクリップボードに与えられたセルの内容を配置したいですその一部を置き換えたものですか?これは、方程式のExcelを取るだろう。その場合は、https://stackoverflow.com/questions/5552299/how-to-copy-to-clipboard-using-access-vbaをご覧ください。 – Leviathan

+0

私はそれがForms 2.0メソッドを使用して動作するようにしました –

+0

これを例として回答として投稿し、自分自身で受け入れることができます。 – Leviathan

答えて

0

超簡単な一般的な例である:

Sub TyS() 
    Dim r1 As Range, r2 As Range 

    Set r1 = Range("A1:A10") 
    Set r2 = Range("B1:B10") 

    r1.Replace What:="{NAME}", Replacement:="John" 
    r1.Copy r2 
    r1.Replace Replacement:="{NAME}", What:="John" 


End Sub