Изменение значения 2 ячеек и соответствующие значения формул необходимо скопировать на другой лист

#excel #vba

Вопрос:

Необходимо изменить значения и скопировать соответствующие значения на новый лист. Я написал

 Sub Macro2() Sheets.Add After:=ActiveSheet  'Worksheets("Sheet2").Range("A1").Value=Worksheets("Sheet1").Range("A1").Value  For x = 0.25 To 5  Worksheets("Sheet2").Range("B3:B6").Value = Worksheets("Sheet2").Range("A6:A9").Value  Z = 3  For y = 10 To 100    Sheets("Sheet1").Select Range("B2").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = x Range("B3").Select ActiveCell.FormulaR1C1 = y Range("B6:B9").Select Selection.Copy Sheets("Sheet2").Select Cells(Z, 3).Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _  xlNone, SkipBlanks:=False, Transpose:=False  Z = Z   1  y = y   10  Next y    x = x   0.25  Next x  End Sub  

введите описание изображения здесь введите описание изображения здесь переменную 1 необходимо изменить с 0,25 до 5 с шагом 0,25. Вторая переменная 2 изменилась с 10 на 100 . Соответствующие значения необходимо вставить в новый лист, аналогичный показанному на рисунке 2, который не полностью показан на изображении. Мой код в основном работает так, как показано на этом изображении.введите описание изображения здесь. Как мне измениться, чтобы отразить, как завершенное изображение 2.

Ответ №1:

Это работает

 Sub Macro2()   Sheets.Add(After:=Sheets("Sheet1")).Name = "NewS"  w = 3   For x = 0.25 To 5 Step 0.25  'Getting value1..4  Worksheets("NewS").Range(Cells(w, 2), Cells(w, 2).Offset(3, 0)).Value = Worksheets("Sheet1").Range("A6:A9").Value  'Getting the value x  Worksheets("NewS").Cells(w, 2).Offset(-1, 0).Value = x    Z = 3  For y = 10 To 100 Step 10    Sheets("Sheet1").Select Range("B2").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = x Range("B3").Select ActiveCell.FormulaR1C1 = y Range("B6:B9").Select Selection.Copy Sheets("NewS").Select Cells(w, Z).Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _  xlNone, SkipBlanks:=False, Transpose:=False   'Getting the y value  Cells(w, Z).Offset(-1, 0).Select ActiveCell.FormulaR1C1 = y  Z = Z   1    Next y  w = w   6    Next x End Sub  

Результат выглядит следующим образом введите описание изображения здесь