gpt4 book ai didi

excel - 使用循环复制具有不同行的范围

转载 作者:行者123 更新时间:2023-12-03 03:21:53 29 4
gpt4 key购买 nike

我是 vba 编码新手,我需要它来制作包含 17520 行数据的工作表。我需要将 12 次(每次 1460 行数据)复制并粘贴到另一个工作表中以运行求解器,然后将求解器的结果粘贴回包含数据的工作表。我已经使用相同的命令编写了 12 次 vba 代码(下面显示的只是 2 次)。现在我正在考虑用循环的方法来总结这段长代码,但我不知道如何开始。谁能帮我解决这个问题吗?

Sub RunModel()

Dim Data As Worksheet
Dim Model As Worksheet
Set Data = Sheets("Customer 1 (A)")
Set Model = Sheets("Sheet 1")

'1st month
'Copy Data
Data.Range("D8:E1467").Copy Model.Range("D8")
Data.Range("L8:L1467").Copy Model.Range("L8")
Data.Range("I7").Copy
Model.Range("I7").PasteSpecial (xlPasteValues)

'Run OpenSolver
Result = RunOpenSolver(False, True)

'Paste result and datas back to Data
Model.Range("N4").Copy
Data.Range("Q7").PasteSpecial (xlPasteValues)
Model.Range("F8:O1467").Copy Data.Range("F8")



'2nd month
'Copy Data
Data.Range("D1468:E2927").Copy Model.Range("D8")
Data.Range("L1468:L2927").Copy Model.Range("L8")
Data.Range("I1467").Copy
Model.Range("I7").PasteSpecial (xlPasteValues)


'Run OpenSolver
Result = RunOpenSolver(False, True)

'Paste result and datas back to Data
Model.Range("N4").Copy
Data.Range("Q8").PasteSpecial (xlPasteValues)
Model.Range("F8:O1467").Copy Data.Range("F1468")

最佳答案

吉普车答案的替代方案。相同的概念(使用 For .. Next),但代码略有不同。

dim i as long
dim rowOffset as long
const rowLength as Long = 1460 ' magic number
const startRow as long = 8 ' magic number
for i= 1 to 12 ' note, standard step of 1
rowOffset = (i - 1) * rowLength + startRow
Data.Range(Data.Cells(4, rowOffset), Data.Cells(4,rowOffset + rowLength -1)).Copy Model.Range("D8")
Data.Range(Data.Cells(12, rowOffset), Data.Cells(12,rowOffset + rowLength -1).Copy Model.Range("L8") 'Why copy over same cell?
rowOffset = (i - 1) * rowLength
Model.Range("I7") = Data.Range("I7").offset(rowOffset, 0).value

'Run OpenSolver
Result = RunOpenSolver(False, True)

'Paste result and datas back to Data
Data.Range("Q7").offset(i, 0) = Model.Range("N4").value
rowOffset = (i - 1) * rowLength
Model.Range("F8:O1467").Copy Data.Range("F8").offset(rowOffset, 0)

next i

关于excel - 使用循环复制具有不同行的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49962456/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com