2015-09-10 2 views
1

У меня есть значения в Sheet1 как: A1 = 23, B1 = M, C1 = 256 и для каждого значения в диапазоне A, I необходимо скопировать значение из ячейки B1 и C1 в Sheet2 в ячейки A6 и D7.Excel VBA для каждой ячейки в диапазоне A, значение копирования в ячейке B, на новый лист

Большое спасибо за вашу помощь

Здравствуйте, да. Я судимый сделать это нравится:

Sub Get_Data() 
    Dim lastrowDB As Long, lastrow As Long 
    Dim arr1, arr2, i As Integer 

    With Sheets("Hárok2") 
     lastrowDB = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 
    End With 
    Sheets("Hárok1").Select 
    arr1 = Array("B", "C", "D") 
    Sheets("Hárok2").Select 
    arr2 = Array("B3:C3", "B7:C7", "E7:F7") 

    For i = LBound(arr1) To UBound(arr1) 
     With Sheets("Hárok1") 
      lastrow = Application.Max(3, .Cells(.Rows.Count, arr1(i)).End(xlUp).Row) 
      .Range(.Cells(3, arr1(i)), .Cells(lastrow, arr1(i))).Copy 
      Sheets("Hárok2").Range(arr2(i) & lastrowDB).PasteSpecial xlPasteValues 
     End With 
     'Sheets("Hárok2").Select 
     'Range("A1:L5").PrintOut 
    Next 
    Application.CutCopyMode = False 
End Sub 

, но это дает мне ошибку в строке: Sheets ("Hárok2") Диапазон (arr2 (я) & lastrowDB) .PasteSpecial xlPasteValues ​​

+0

См. [Как задать вопрос] (http://stackoverflow.com/help/how-to-ask). – findwindow

+0

У вас есть вопрос? – Davesexcel

ответ

2

Массив является излишеством здесь. Я думаю. Я предполагаю, что вы хотите, чтобы он продолжался с A6 и D7. Очевидно, по мере необходимости меняйте рабочие листы. Это тянет от ws1 (источник) до ws2 (пункт назначения).

Sub denn() 

Dim ws1 As Worksheet 
Dim ws2 As Worksheet 
Dim lastRow As Long 

Set ws1 = WorkSheets("Sheet4") 
Set ws2 = WorkSheets("Sheet5") 
lastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row 

For i = 1 To lastRow 
    ws2.Cells(i + 5, 1) = ws1.Cells(i, 2).Value 
    ws2.Cells(i + 6, 4).Value = ws1.Cells(i, 3).Value 
Next 

End Sub 
+0

Добро пожаловать. – findwindow

Смежные вопросы