Excel 如果单元格包含值,则将数据复制到新工作表

Excel 如果单元格包含值,则将数据复制到新工作表,excel,excel-2010,vba,Excel,Excel 2010,Vba,我正在寻找有关宏的帮助,以便我可以轻松地排序和查看数据 我有一个电子表格,第1行和第2行包含项目信息。第3-93行包含订购信息。对于3-93中的每一行,如果F和VU之间的任何列中有一个值,则将该行a、B、C列中的相应值复制到名为Orders的新工作表中,并复制该列第1行和第2行中的相应值 例如,我需要这个: ……A…………B…………C…………F…………古 1…100235410(海军衬衫)…101028 316(Moss FR格子) 2个XL个2XL T 3.杰克……布朗……电流……2 复制到名

我正在寻找有关宏的帮助,以便我可以轻松地排序和查看数据

我有一个电子表格,第1行和第2行包含项目信息。第3-93行包含订购信息。对于3-93中的每一行,如果F和VU之间的任何列中有一个值,则将该行a、B、C列中的相应值复制到名为Orders的新工作表中,并复制该列第1行和第2行中的相应值

例如,我需要这个:

……A…………B…………C…………F…………古

1…100235410(海军衬衫)…101028 316(Moss FR格子)

2个XL个2XL T

3.杰克……布朗……电流……2

复制到名为“订单”的新工作表中,如下所示:

A…………B…………C…………D…………E…………F

1…Jack…Brown…当前……100235410(海军衬衫)……XL…………2

2…杰克…布朗…电流…101028 316(Moss FR格子布)…2XL T………1

我正在与VBA逻辑斗争,似乎无法使其正常工作。非常感谢您的帮助或建议


谢谢

如果你只是深入研究编码,那么像这样的问题可能是一个挑战,特别是对于初学者,它需要定义可编码为描述过程的小片段。我建议您创建一个流程图或一步一步的程序,描述如果必须手动进行更改,您会做什么。如果您的过程准确地描述了这些步骤,那么您可以创建执行每个单独步骤的代码,并按照流程图中描述的顺序将这些代码片段串在一起

此外,请确保定义可以对您将使用的每一行、图纸或其他描述数据集重复的过程。然后可以循环这些过程,以避免反复编写相同的代码

对于上面的示例,如果我理解正确,您首先需要定义定义客户的范围:在本例中,范围是从A3到A93(或任何最高行号)。如果不同,则需要定义随特定数据集而变化的范围(例如,使用
.End
方法,如果数据中没有空单元格(理想情况下不应该有),则可以执行以下操作:

Dim wbOrders As Workbook
    Set wbOrders = ActiveWorkbook
Dim wsOrders As Worksheet
    Set wsOrders = wbOrders.ActiveSheet
Dim rngOrders As Range
    Set rngOrders = wsOrders.Range("A3", wsOrders.Range("A3").End(xlDown))
定义了订单的范围后,可以通过数据循环处理各个订单:

Dim rngCustomer As Range

For Each rngCustomer In rngOrders
    '~~>Here you could define other ranges to work with (perhaps columns F to VU of the
    '   current row)
    '~~>Here you could also define other loops/routines to move the data
Next rngCustomer
在上面的循环结构中,您可以
Dim
一系列客户订单,循环遍历包含数据的范围查找列,使用每个列(一次一个)查找到的数据,从该行以及第1行和第2行获取数据(可能一次一个单元格),并将其传输到新的 或放入值数组中,在第一个循环找到并定义所有客户订单数据并将其放入数组后,这些值可以添加到所有新的工作表中


我希望这足以让你开始解决这个问题。如果你在编码单个步骤时遇到了障碍,请在StackOverflow或web上搜索以找到解决方案。如果你没有找到,请发布一个问题,详细说明你尝试了什么,包括StackOverflow的特定非工作代码,我几乎可以保证e您将在24小时或更短的时间内得到答案。

发布您拥有的代码总是很有帮助的。@RichardMorgan我正在努力规划它。我对VBA非常陌生,很少在VBA中工作。希望了解这应该如何进行,并一路学习。感谢您的详细回复。我或多或少在寻找解决方案,甚至是解决方案基本解决方案是可行的,然后我可以研究它来理解逻辑/流程。然后在理解它之后,如果我也这么做了,就进行调整。谢谢Karl!不客气。StackOverflow通常不是为你编写基本代码的地方,除非你已经在其中做了一些工作。但是如果你明确地尝试了,人们会非常乐于助人在发布之前,请提供足够的详细信息,并分享您尝试过的具体内容。查看,并获取有关提问的指导原则。