2016-10-07 6 views
0

達成しようとしているのは、シート "Arkusz1"から3枚目のセルをコピーし、シート "Arkusz2"をその列の最初の空の列と最初の空の行に貼り付けることです。この後、最初の行が10個のセルで満たされるまでプロセスが再設定され、次の行にコピーが進みます。私は列Aの最初の空行に貼り付けるコードを持っていますが、上記のように正しく動作しません。私はどんな助けにも感謝します。 Goto Line 2 は代わりに、Excelを読んで、あなたは何回もすることを繰り返すようにコピーして、ループを作成する必要がありますどのように多くの細胞を見つける -セルの範囲を最初の空の行と空の列n

Sub y() 
LastRowy = Sheets("Arkusz2").UsedRange.Rows.Count 
lastCol = Sheets("Arkusz2").Cells(LastRowy, Columns.Count).End(xlToLeft).Column 

Set targetRNg = Worksheets("Arkusz1").Range("A4") 


With Excel.ThisWorkbook.Sheets("Arkusz2") 
    colCount = Arkusz2.UsedRange.Rows(LastRowy).Columns.Count 
End With 
MsgBox colCount 
If colCount > 10 Then GoTo Line1 Else GoTo Line2 

Line1: 

With Excel.ThisWorkbook.Sheets("Arkusz2") 
    Set destRng = .Cells(LastRowy, .Columns.Count).End(Excel.xlToLeft).Offset(0, 1).Resize(targetRNg.Rows.Count, targetRNg.Columns.Count) 
    destRng.Value = targetRNg.Value 

End With 
+0

あなたは、Excelでこれを実行していますかこれはVBScriptですか? –

答えて

0

私のようなステートメントを使用しないように思います。声明に続き

は私に間違ったになります。

colCount = Arkusz2.UsedRange.Rows(LastRowy).Columns.Count 

あなたがしたい行を取得し、/設定値を読み取るために、以下の機能を使用することができますそれに応じて

Function fn_GetLastColumn(ByVal sSheetName As String, ByVal iRow As Integer) As Integer 
    Dim sht As Worksheet 
    Set sht = ThisWorkbook.Sheets(sSheetName) 
    fn_GetLastColumn = sht.Cells(iRow, sht.Columns.Count).End(xlToLeft).Column 

End Function 

Function fn_GetLastRow(ByVal SheetName As String, ByVal iColNo As Integer) As Integer 
    Dim sht As Worksheet 

    Set sht = ThisWorkbook.Sheets(SheetName) 

    'Ctrl + Shift + End 
    fn_GetLastRow = sht.Cells(sht.Rows.Count, iColNo).End(xlUp).Row 

End Function 
+0

こんにちは、私の場合、どうやって使うのか教えてください。 – eurano

+0

ちょうどあなたがやろうとしていることを知らずに少し難しいです。しかし、ソースデータ(Arkusz1は固定であるか可変であるか)によって、ソースから変数にデータを読み込みます(ハードコーディングされたセルから直接、またはデータを見つけて変数に読み込むことによって)。 その後、 iLastCol = fn_GetLastColumn(「Arkusz2」、1)非空の列が1行のデータを持っていると仮定すると(私の最後の空の列が得られます。 私はThisWorkbook.Sheets(「Arkusz2」)を使用して値をコピーしたいです.Cells(1、iLastCol)= varSourceValue1 – Yogesh

+0

こんにちは、ありがとうございます。しばらくすると、私はあなたの関数を適切に使いこなし、目標を達成しました。 – eurano

関連する問題