vba - 如果单元格 = 0,则将范围复制到主表并从主表中删除范围

标签 vba excel

有 10 张表 (Sheet1...Sheet10),表的范围相同 (C25:G34 & C42:N51)。

Worksheets Source Tables

如果“总重量”列的值 > 0,则必须复制行。复制的行转到两个汇总表:

至 Westrock 表 -> Westrock 汇总表

至 DNP 表 -> DNP 汇总表

汇总表:
韦斯特洛克
Westrock Summary

汇总表:
DNP
enter image description here

我在 Mac 上,所以 PowerQuery 不是一个选项。我是 VBA 新手;这就是我到目前为止所拥有的:

Sub ToDNP()

Application.ScreenUpdating = False

Worksheets("Jupiter").Activate
Range("C42:N51").Select
Selection.Copy
Worksheets("To DNP").Activate
Range("C11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
'Application.CutCopyMode = False

Worksheets("Windsor").Activate
Range("C42:N51").Select
Selection.Copy
Worksheets("To DNP").Activate
Range("C21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Worksheets("Orlando").Activate
Range("C42:N51").Select
Selection.Copy
Worksheets("To DNP").Activate
Range("C31").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Worksheets("Woodland").Activate
Range("C42:N51").Select
Selection.Copy
Worksheets("To DNP").Activate
Range("C41").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False


Dim rRow As Integer, rCol As Integer
Dim cRow As Integer, cCol As Integer

rCol = 3
rRow = 11
cCol = 14
cRow = 11

For cRow = 11 To 50

    If Cells(cCol, cRow).Value = "0" Then
        Range(Cells(rCol, rRow), Cells(cCol, cRow)).ClearContents
    End If
    rRow = rRow + 1

Next cRow

End Sub

这给了我一个错误:

Error: Cannot change part of a merged Cell

最佳答案

您收到错误是因为您交换了行和列值。行参数首先出现,然后是列参数。

您的代码应如下所示:

If Cells(cRow, cCol).Value = "0" Then
    Range(Cells(rRow, rCol), Cells(cRow, cCol)).ClearContents
End If

您正在尝试从“To DNP”工作表的第 3 行到第 14 行清除第 11 列,该工作表显然包含合并的单元格。

关于vba - 如果单元格 = 0,则将范围复制到主表并从主表中删除范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46453371/

相关文章:

vba - 通过下拉列表将数据从一张表导出到另一张表 - VBA Excel 宏

excel - 在多个 Excel 实例之一中查找工作簿

arrays - 将多维数组写入excel vba

excel将数据从单行转换为多行

vba - 从oracle获取数据到excel并将具有相同单元格名称的数据发送到excel中不同工作表的代码

VBA:运行时错误 '91' ?

excel - 如何转换数组中的整数

vba - 在 Excel 中使用 QueryTables 导入带引号换行符的 csv

java - 使用 API 将 Excel 列转换为 Java

c# - 在代码中创建 Excel SpreadsheetML。 (没有 Excel!)