Return 列中第一个非空单元格中的值直接向左并向上
Return the value in the first non-empty cell in the column directly to the left and going upward
我是 VBA 的新手,大部分时间都在尝试在录制宏后修改代码,所以这一切都非常基础,而且方法可能不如我见过的一些东西那么优雅在这。所以我们开始吧。
我已经(通过蛮力)编码我的数据,使其像 CAD 设计树视图一样排列,父级 products/assemblies 和子级 sub-assemblies/parts。
E 列包含 0 级顶部组件零件号
F 列包含 1 级项目零件号
...等一直到...
M 列包含 8 级项目部件号
例如,单元格G112包含ASSY1;单元格 H113 到 H134 包含其构成项。
我想在新列(即 O 列)中显示单元格 G112 (ASSY1) 的每个组成部分的值。所以 O113 到 O134 将显示 G112 的值。这将需要应用于程序集的每个级别。
我不确定我说得有没有道理请看下面链接的图片,它说了一千个字。我在 O 列中突出显示并用颜色编码了我想要的结果。
附录 - 澄清事情:
我不知道还能如何解释我的请求,只能 post 我原始图片的简化版本。
SIMPLIFIED EXCEL TABLE
.CSV 可在此处获取 WeTransfer
一个非常有用的工具来检索VBA确定动作的代码是宏记录器,在功能区中,Developer -> RecordMacro,执行你的动作并停止记录,然后你可以检查为你记录的动作。它不是最干净的代码,但您可以在那里找到您想要的特定操作的代码行。一旦您使用您尝试的代码解决了一个具体问题,您就可以就更具体的事情寻求帮助,而不是期望有人会为您编写代码。
无论如何,如果您希望有人尝试解决您的问题,您需要 post table 使用可访问的数据而不是图像,以便试图解决您的问题的人有可用的数据。
希望对您有所帮助
如果有人感兴趣,这是我从其他地方得到的答案:
单元格 O3 中的公式:
=IF(C3=0,"N/A , 已经是顶级",INDEX(D$2:D2,AGGREGATE(14,6,(ROW(D$2:D2)-ROW(D$2 )+1)/(C$2:C2=C3-1),1)))
Copy/Paste 在 O
列的每个单元格中向下
我是 VBA 的新手,大部分时间都在尝试在录制宏后修改代码,所以这一切都非常基础,而且方法可能不如我见过的一些东西那么优雅在这。所以我们开始吧。
我已经(通过蛮力)编码我的数据,使其像 CAD 设计树视图一样排列,父级 products/assemblies 和子级 sub-assemblies/parts。
E 列包含 0 级顶部组件零件号 F 列包含 1 级项目零件号 ...等一直到... M 列包含 8 级项目部件号
例如,单元格G112包含ASSY1;单元格 H113 到 H134 包含其构成项。
我想在新列(即 O 列)中显示单元格 G112 (ASSY1) 的每个组成部分的值。所以 O113 到 O134 将显示 G112 的值。这将需要应用于程序集的每个级别。
我不确定我说得有没有道理请看下面链接的图片,它说了一千个字。我在 O 列中突出显示并用颜色编码了我想要的结果。
附录 - 澄清事情: 我不知道还能如何解释我的请求,只能 post 我原始图片的简化版本。 SIMPLIFIED EXCEL TABLE
.CSV 可在此处获取 WeTransfer
一个非常有用的工具来检索VBA确定动作的代码是宏记录器,在功能区中,Developer -> RecordMacro,执行你的动作并停止记录,然后你可以检查为你记录的动作。它不是最干净的代码,但您可以在那里找到您想要的特定操作的代码行。一旦您使用您尝试的代码解决了一个具体问题,您就可以就更具体的事情寻求帮助,而不是期望有人会为您编写代码。
无论如何,如果您希望有人尝试解决您的问题,您需要 post table 使用可访问的数据而不是图像,以便试图解决您的问题的人有可用的数据。
希望对您有所帮助
如果有人感兴趣,这是我从其他地方得到的答案:
单元格 O3 中的公式:
=IF(C3=0,"N/A , 已经是顶级",INDEX(D$2:D2,AGGREGATE(14,6,(ROW(D$2:D2)-ROW(D$2 )+1)/(C$2:C2=C3-1),1)))
Copy/Paste 在 O
列的每个单元格中向下