Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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宏-在第一个单元格中查找文本,替换相邻单元格中的值_Vba_Excel - Fatal编程技术网

Excel VBA宏-在第一个单元格中查找文本,替换相邻单元格中的值

Excel VBA宏-在第一个单元格中查找文本,替换相邻单元格中的值,vba,excel,Vba,Excel,处理杂货商提供的供应商销售文件,其中列出了他们销售的单位数量。问题是,他们的excel表格和记录销售的方式(我无法更改)并没有区分单条销售和盒子销售——所以有些行表示“Mint Bar”=1销售,有些行表示“Mint Bar Box”=1销售。表中的单位值是相同的,但“框”实际上应该=12(因为框是12个单位,而不仅仅是1) 第二个问题是,每次出现“框”时,值都需要为n*12(因此1box*12=12条) 因此,我正在寻找一些代码来帮助我。我知道这在SQL中很容易,而且运行excel宏的经验较少

处理杂货商提供的供应商销售文件,其中列出了他们销售的单位数量。问题是,他们的excel表格和记录销售的方式(我无法更改)并没有区分单条销售和盒子销售——所以有些行表示“Mint Bar”=1销售,有些行表示“Mint Bar Box”=1销售。表中的单位值是相同的,但“框”实际上应该=12(因为框是12个单位,而不仅仅是1)

第二个问题是,每次出现“框”时,值都需要为n*12(因此1box*12=12条)

因此,我正在寻找一些代码来帮助我。我知道这在SQL中很容易,而且运行excel宏的经验较少

-- 固定的:

如果方框出现在D2、D6、D8等中:

=if(Cell="Box", 12*D2, 12*D6, 12*D8)
向下拖动工作表中所有行的公式



您必须在宏中执行此操作吗?我想再加一个专栏,上面写着


=if(Cell=“Mint Bar Box”,12,1)

@Meaghan如果需要,您还可以乘以售出的单位数量。如果单元数在单元格B4中,请使用
=If(cell=“Mint Bar Box”,12*B4,B4)
@jjj,好的呼叫。事实上,根据标题,似乎Meaghan已经有了一个数量列,因此我们甚至不需要添加另一个列,甚至不需要使用
=if(ISNUMBER(FIND(“BOX”),UPPER(desc_cell)),12,1)*qty_cell
或(如果“BOX”始终是最后一位)
=if(RIGHT(desc_cell,4)=“BOX”,12,1)*谢谢大家!我把事情弄得太复杂了。