在 Excel 中将行移动到新工作表

在 Excel 中将行移动到新工作表

我遇到了一个问题。在我的工作中,我们经常会收到包含地点的电子表格。我们需要将每个地点分散到不同的工作表中。因为这样我们才能列出附近的商家来做广告。当他们给我们包含 5 个地点的电子表格时,这不是什么大问题,但最近我们收到了一张包含 100 多个地点的电子表格。

我想创建一个函数,该函数接受给定的行,取第一个值并将其内容(位置编号)放入新工作表中。将该行复制到以其命名的工作表中,然后粘贴。这是我当前的代码。我遇到了“类型不匹配”和“需要对象”的问题。对这些问题有什么建议吗?

子测试行三()
    Dim row 作为整数
    行 = 3
    复制行(行)
子目录结束

Sub CreateNewSheet(strName 作为字符串)
    Sheet.Add.Name = strName
子目录结束

Sub CopyRow(rowNum 作为整数)
    Dim mainSheetName 作为字符串
    mainSheetName = ActiveWorkbook.ActiveSheet.Name
    Dim newSheetName 作为字符串
    newSheetName = Sheets(mainSheetName).Range("$A$" & rowNum).Value
    工作表(mainSheetName)。选择
    范围(“A”& rowNum & “:H”& rowNum).剪切
    创建新工作表(新工作表名称)
    工作表(新工作表名称).选择
    范围("A" + rowNum + ":H" + rowNum).选择
    活动工作表.粘贴
子目录结束

答案1

在代码中发现一些虽小但至关重要的错误。

  1. 在“CreateNewSheet”中,Sheet需要的SheetsSheet 没有引用任何内容,因此出现“需要对象”错误
  2. 在选择要粘贴到的新范围时,我错误地使用了“ Yield”+而不是&“Yield”,导致类型不匹配。注意:然后我意识到,一旦我可以执行我的代码,我就会将它们复制到原始行上,这很烦人,通过复制到同一行来修复它。

我在下面发布了我修改后的代码。

子测试行三()
    Dim row 作为整数
    行 = 3
    复制行(行)
子目录结束

Sub CreateNewSheet(strName 作为字符串)
    Sheets.Add.名称 = strName
子目录结束

Sub CopyRow(rowNum 作为整数)
    Dim mainSheetName 作为字符串
    mainSheetName = ActiveWorkbook.ActiveSheet.Name
    Dim newSheetName 作为字符串
    newSheetName = Sheets(mainSheetName).Range("$A$" & rowNum).Value
    工作表(mainSheetName)。选择
    Range("A" & rowNum & ":H" & rowNum).复制
    创建新工作表(新工作表名称)
    工作表(新工作表名称).选择
    范围("A1:H1").选择
    活动工作表.粘贴
子目录结束

相关内容