#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