如何根据行和列的选择编写VBA代码来复制单元数据

如何根据行和列的选择编写VBA代码来复制单元数据,vba,excel,Vba,Excel,在下面的屏幕截图中,我想编写一个VBA代码来执行以下操作: 我将使用鼠标或键盘选择单元格的范围 单元格1,1始终是工作表名称 使用宏键将选定的数据范围复制到步骤2工作表中 保存工作表 重复步骤1、2、3,直到手动关闭Excel 图片: 应该是这样的: Sub MyMacro() With Selection Sheets.Add.name = .Cells(1, 1) .Offset(1).Resize(.Rows.Count - 1).Copy Shee

在下面的屏幕截图中,我想编写一个VBA代码来执行以下操作:

我将使用鼠标或键盘选择单元格的范围 单元格1,1始终是工作表名称 使用宏键将选定的数据范围复制到步骤2工作表中 保存工作表 重复步骤1、2、3,直到手动关闭Excel 图片:


应该是这样的:

Sub MyMacro()
    With Selection
        Sheets.Add.name = .Cells(1, 1)
        .Offset(1).Resize(.Rows.Count - 1).Copy Sheets(.Cells(1, 1).value).Range("A1")
    End With
End Sub

请随意添加所有必要的检查以确保错误处理,例如:未进行选择,仅选择了一行,目标工作表已存在。。。您可以在这里找到几十个示例

请参见。欢迎使用StackOverflow。你的问题太宽泛了。每一步都要尝试一些东西,如果不是在这个网站上,大部分都可以在谷歌上找到,如果你不能让它工作,发布具体的问题,发布相关的代码和错误(如果有的话)。非常感谢。你能解释一下下面的代码吗?它是如何工作的?Offset1.Resize.Rows.Count-1.Copy Sheets.Cells1,1.value.RangeA1因为我正在努力编写以下要求1宏不允许在复制下一张工作表中的数据块时复制选择2上的重复选项卡名称和数据,如果任何3个选项卡名称不包含任何特殊字符且不超过20个字符,则应删除空行。无论何时使用宏键,所有这些都必须满足。这将是非常有帮助的帮助我写的代码。提前谢谢,不客气。OffsetnRows,nCols将本例中的参考范围下移一行;ResizenRows,nCols在这种情况下将其大小调整为少一行;它们的结果都是跳过第一行标题,这是不需要的。如LER本网站规则1,如果我的答案解决了你原来的问题,那么请考虑将它标记为接受。2如果你有更多的问题,那么在一个新的答案中发布它们,以及你在尝试和解决它们时所做的努力。谢谢。是的,我自己写的,效果很好。再一次thanks@LokanathK,不客气。然后你可能想把我的答案标记为接受。非常感谢。