Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 任务:更好的代码:复制工作簿-多个工作表,相同的范围,但不同工作表的数据值不同_Excel_Vba_Coding Efficiency - Fatal编程技术网

Excel 任务:更好的代码:复制工作簿-多个工作表,相同的范围,但不同工作表的数据值不同

Excel 任务:更好的代码:复制工作簿-多个工作表,相同的范围,但不同工作表的数据值不同,excel,vba,coding-efficiency,Excel,Vba,Coding Efficiency,我有两本由多个工作表组成的工作簿,每个工作表包含不同工作表的数据,范围为B7:P100。我需要将数据从每个工作表的范围复制到另一个工作簿中相应的工作表和范围 下面的代码实现了这一点:然而,在我看来,可能有一种更优雅的方法来实现相同的结果。我慢慢地变得精通VBA编程的野蛮力量和无知方法,但我想更好地理解VBA。我曾尝试使用3D范围数组;但很明显,我并不完全理解复杂的数组 以下代码缩写为节省空间。必须复制18个工作表 你能推荐一种更优雅或更有效的方法来完成任务吗?我将感谢你的评论 Workbook

我有两本由多个工作表组成的工作簿,每个工作表包含不同工作表的数据,范围为B7:P100。我需要将数据从每个工作表的范围复制到另一个工作簿中相应的工作表和范围

下面的代码实现了这一点:然而,在我看来,可能有一种更优雅的方法来实现相同的结果。我慢慢地变得精通VBA编程的野蛮力量和无知方法,但我想更好地理解VBA。我曾尝试使用3D范围数组;但很明显,我并不完全理解复杂的数组

以下代码缩写为节省空间。必须复制18个工作表

你能推荐一种更优雅或更有效的方法来完成任务吗?我将感谢你的评论


Workbooks("Nutrition  Update.xlsm").Worksheets("Breakfast").Range("B7:P100").Value = _
Workbooks("Nutrition.xlsm").Worksheets("Breakfast").Range("B7:P100").Value

Workbooks("Nutrition Update.xlsm").Worksheets("Lunch").Range("B7:P100").Value = _
Workbooks("Nutrition.xlsm").Worksheets("Lunch").Range("B7:P100").Value

Workbooks("Nutrition Update.xlsm").Worksheets("Dinner").Range("B7:P100").Value = _
Workbooks("Nutrition.xlsm").Worksheets("Dinner").Range("B7:P100").Value

Sub CopyStuff
Dim wbSource as Workbook
Dim wbTarget as Workbook
set wbsource = workbooks("Nutrition  Update.xlsm")
set wbtarget = workbooks("Nutrition.xlsm")
dim ws as worksheet 
for each ws in wbsource.worksheets  'loop through every sheet
  wbtarget(ws.name).range("B7:P100") = ws.range("b7:p100").value 'copy to same name in target
next ws
end sub