【发布时间】:2019-02-03 09:08:58
【问题描述】:
我在工作簿中有几张工作表,如果列表中有多个数字,我需要将相邻列移到 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
剪切在多张纸上无法正常工作。它没有正确移动到新工作表。
有没有办法将单元格的值和对单元格的引用从公式中移动到多个工作表上?
【问题讨论】:
-
您似乎正在将值从一个单元格分配到另一个单元格。这样做只会用静态值覆盖任何公式(在目标单元格中)。相反,您可能想使用
Range.Cut