2014-10-01 37 views
-2

我想让用户选择一个范围的子集并使用宏选择剪切板的更大范围以复制到不同的工作簿。Excel:用户选择到更大范围的副本

用户输入: Range("A1:A5") 复制的范围: Range("A1:DM5")

现在怎么样: 用户输入: Range("A1:C5") 复制的范围: Range("A1:DM5")

感谢提前任何建议。 klaus2

+0

如何确定较大的范围内? – Degustaf 2014-10-01 22:23:46

+0

它将始终是Ax:DMx。 我想如果我可以确定哪一行被选中,那么我可以定义复制的范围。 – klaus2 2014-10-01 23:29:36

回答

1
Dim rng As Range 
Set rng = Application.Intersect(Selection.EntireRow, Range("A:DM")) 

If Not rng Is Nothing Then 
    rng.Copy 
    'etc etc 
End If 
0

对不起,我还没有被周围几天。 我想出了一个解决方案,似乎给了我想要的东西。我通过谷歌搜索找到了关键。

Dim strSelection As String 
Dim firstRow As Integer 
Dim lastRow As Integer 
Dim firstCell As String 
Dim lastCell As String 

Sub Macro3() 
    strSelection = Selection.Address(ReferenceStyle:=xlA1, _ 
         RowAbsolute:=False, ColumnAbsolute:=False) 
    firstRow = Range(strSelection).Row 
    lastRow = Range(strSelection).Rows.Count + Range(strSelection).Row - 1 
    firstCell = "A" & firstRow 'will always be "A" + firstRow 
    lastCell = "I" & lastRow 'will always predetermined column + lastRow 
    Range(firstCell, lastCell).Select 'selects the range and ready for copying to another workbook 
    MsgBox firstCell 'testing 
    MsgBox lastCell 'testing 

末次

+0

谢谢你的建议蒂姆。我还没有尝试过,但会。 – klaus2 2014-10-06 22:19:18