Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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 使用VBA的场景生成器_Excel_Vba - Fatal编程技术网

Excel 使用VBA的场景生成器

Excel 使用VBA的场景生成器,excel,vba,Excel,Vba,我有一个非常复杂的问题,可能需要你的专家帮助 我想创建一个场景生成器,基于同一工作簿上的单独工作表,该工作表包含所有可能的场景,该工作表是业务工作流的转换,该工作流中的每个任务都有许多操作,每个操作都会导致不同的场景,并且每个操作对于同一任务都有自己的状态,因此,任务、行动和状态的组合总是独一无二的 表1所有场景 表2场景生成器 我创建了这个示例excel表来演示我需要的内容,表1是包含所有可能场景的主表,表2是场景生成器,表2中的第一行和第二行始终是固定的,但第三行D3中的操作是一个下拉列表数

我有一个非常复杂的问题,可能需要你的专家帮助

我想创建一个场景生成器,基于同一工作簿上的单独工作表,该工作表包含所有可能的场景,该工作表是业务工作流的转换,该工作流中的每个任务都有许多操作,每个操作都会导致不同的场景,并且每个操作对于同一任务都有自己的状态,因此,任务、行动和状态的组合总是独一无二的

表1所有场景

表2场景生成器

我创建了这个示例excel表来演示我需要的内容,表1是包含所有可能场景的主表,表2是场景生成器,表2中的第一行和第二行始终是固定的,但第三行D3中的操作是一个下拉列表数据验证,不会更改

根据我在D3上选择的动作,代码必须在第1页第D列搜索所选动作值,并且只有在验证第2页中前一行{所用下拉列表}的out状态=第1页中的in状态后,才能在同一行上显示相应的out status ID、out status、SLA

因此,例如,如果我在表2中的下拉菜单上选择操作3,则搜索服务必须在表1中启动以查找列D上的操作3,然后在验证表2中F2中前一行{所用下拉列表}的退出状态后,在表2中相应单元格上显示{Out status ID,Out status,表1的SLA:{in status xyz}=第1页G6中的状态:{in status xyz},显示的out状态将为{in status 4},其代码、SLA和任务ID、任务名称角色均从第1页out状态的同一行复制到第2页的相应行

选定动作

显示下一个任务的任务ID、任务名称、角色和操作,下一个任务将由工作表2中上一个任务的复制状态标识,服务必须搜索工作表2中最后一步的复制状态,在工作表1的“状态”列中,您可以使用“状态ID”,它将与多行匹配,我希望服务复制在状态中找到的第一个对应值,状态中有多个重复项,因为每个操作的状态都是唯一的,每个任务中都有许多操作

然后,我想创建一个与表2的out status=表1的in status相对应的所有可能操作的下拉列表,用户可以从中选择任何值,然后循环循环,提示:所有可能操作下拉列表也可以通过任务ID标识,但该列表将有许多重复项,并且您必须只显示唯一的值 我知道这是一个非常复杂的问题,但它会帮我很多

另外,我对VBA知之甚少,所以不可能自己构建如此复杂的代码


有人能帮我解决这个问题吗?

看起来你不需要帮助。你需要一个程序员。为了有资格获得帮助,您需要在编程方面发挥带头作用。显示您所做的,显示您遇到的困难,并提出一个有助于您一步一步前进的问题。请不要包含指向启用宏的Excel文件的链接。不太可能有人会下载它,因为它可能很危险。相反,请包含代码中存在问题的相关部分,并提出一个具体问题。列出你的整个项目并要求别人为你做这一切不在堆栈溢出的范围内。我真是太感谢你了,你们都帮了我一个忙,我几乎做到了:信不信由你,但这是我现在面临的唯一问题,如果你能帮我的话,请做吧