我在工作簿中有几张工作表,如果列表中有多个数字,则需要将相邻的列移到1上。工作表中的公式中正在使用此相邻的列。我希望公式在新位置引用该值。
这是代码之前的表
这是理想的结果,所有1和5的数字都移至1列,但公式仍引用该单元格。
我写过:
For i = 1 To WS_Count
sheet_name = ActiveWorkbook.Worksheets(i).Name
row_count = Worksheets(sheet_name).Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row
For x = 11 To row_count
cell = ActiveWorkbook.Worksheets(sheet_name).Cells(x, 1)
If cell = "" Then GoTo NextIteration
If ActiveWorkbook.Worksheets(sheet_name).Cells(x - 1, 1) = ActiveWorkbook.Worksheets(sheet_name).Cells(x, 1) Or ActiveWorkbook.Worksheets(sheet_name).Cells(x + 1, 1) = ActiveWorkbook.Worksheets(sheet_name).Cells(x, 1) Then
ActiveWorkbook.Worksheets(sheet_name).Cells(x, 5) = ActiveWorkbook.Worksheets(sheet_name).Cells(x, 4)
ActiveWorkbook.Worksheets(sheet_name).Cells(x, 4).ClearContents
End If
NextIteration:
Next x
Next i
在多张纸上,裁切无法正常工作。它无法正确移动到新表。
是否有一种方法可以将公式中单元格的值和对单元格的引用移动到多张纸上?
答案 0 :(得分:3)
您可以将值切为:
<?php
$array =
array(
0 => array (
7 => array (
'y' => 83,
'label' => '2019-01-04 00:00:00'
)
),
1 => array (
7 => array (
'y' => 80,
'label' => '2019-01-02 00:00:00'
)
),
2 => array (
8 => array (
'y' => 50,
'label' => '2019-01-03 00:00:00'
)
)
);
$sorted = array();
foreach($array as $key => $value)
$sorted[key($value)][] = $array[$key][key($value)];
print_r($sorted);
答案 1 :(得分:0)
为什么不复制公式? https://docs.microsoft.com/en-us/office/vba/api/excel.range.formula
算法
for....
if ....
You can copy formula to the adjacent cell, then empty the cell
如果您直接将公式从一个单元格复制到另一个单元格,则公式不会更改