2016-08-25 17 views
2

私は類似のマクロに提案されているコードのいくつかを試しました。Excel貼り付けの絵を列として繰り返す

列Lのセルの情報を列Mの図として個別に貼り付ける必要があります。何百という項目のそれぞれについてこれを何度も何度も繰り返す必要はありません。

ループやリピートなしでは次のようになります。ちょうど操作を2回行う。

Sub pasteaspicture() 


pasteaspicture Macro 

    Range("L3").Select 
    Selection.Copy 
    Range("M3").Select 
    ActiveSheet.Pictures.Paste.Select 
    Range("L4").Select 
    Application.CutCopyMode = False 
    Selection.Copy 
    Range("M4").Select 
    ActiveSheet.Pictures.Paste.Select 
End Sub 

ありがとうございます。

+0

@JaiKumarなぜ最初の行からコメントを削除しましたか?それはそこにあるはずだ – Andreas

+0

私は意味しなかった。ここでは再びコメントがあります。私はちょうどその名前を変更しました。サブMacro3() ' ' Macro3マクロ ' ' 範囲( "L3")。 Selection.Copy範囲( "M3")を選択する。 ActiveSheet.Pictures.Paste.Select範囲を選択し(「L4 ").Select Application.CutCopyMode = Falseの Selection.Copy レンジ(" M4" )。私はそれがランディ君だったとは思わないが、それはちょうどに簡単です ActiveSheet.Pictures.Paste.Select End Subの –

+0

を選択質問を編集します。あなたの質問について:私はpictures.pasteを使用したことがないので、私は選択せずにコードを作ることができるとは確信していません。しかし、私はあなたに必要なものの一般的な概念を与えることができます – Andreas

答えて

1

このコードは、行3から列Lの最後までループする必要があります。そうでない場合は、編集することができます。

Application.screenupdating = False 
With ActiveSheet 
    LastRow = .Cells(.Rows.Count, "L").End(xlUp).Row 
End With 

For i = 3 To LastRow 
    Range("L" & i).Copy 
    Range("M" & i).Select 
    ActiveSheet.Pictures.Paste.Select 
Next i 

Application.screenupdating = true 

このコードは動作するはずですが、それはVBAで不要である、選択含むが、私は絵のペーストを使用する方法を見当もつかないので、私はテンプレートとしてあなたのコードを使用していました。

+0

これは素晴らしいです!うわーありがとう –

0

ここでは、ループなしですばやく(しかし長い)方法があります。 範囲を設定し、列の最後の行を見つけます。

Excelには同じナッツをスキンケアする方法がたくさんあります。お役に立てれば。

Sub CopyPic() 

    Dim lTopRow As Long 
    Dim lLeftColumn As Long 
    Dim lRightColumn As Long 
    Dim lLastRow As Long 

    With Sheets("Sheet1") 
     lTopRow = .Range("L3").Row 
     lLeftColumn = .Range("L3").Column 

     lLastRow = .Range("L:L").Find("*", , xlValues, , xlByRows, xlPrevious).Row 
     lRightColumn = lLeftColumn 

     Application.Goto .Range(Cells(lTopRow, lLeftColumn), Cells(lLastRow, lRightColumn)), scroll:=False 

     Selection.Copy 

     lLeftColumn = .Range("M3").Column 
     lRightColumn = lLeftColumn 

     Application.Goto .Range(Cells(lTopRow, lLeftColumn), Cells(lLastRow, lRightColumn)), scroll:=False 

     .Pictures.Paste.Select 

    End With 


End Sub 
+0

私のためにこれを見てくれてありがとう。私はこれを試し、それは近いです。この問題は、各ペーストが別々のイメージではなく、範囲全体を1つのピクチャとしてコピーすることにあります。 L列の各セルは、M列の独自のイメージになる必要があります。どのように私はそれを動作させるために変更することができますか? –

関連する問題