基于非统一数据范围在两张纸之间链接数据

我试图在一张纸上取一个非均匀范围的数据并将其链接(单元格将具有“= Sheet1!A1”,而不是硬编码值)到同一工作簿中的另一个工作表。

我不能使用.UsedRange,因为我得到了很多空的单元格,我不想链接到另一个工作表

这是我的代码到目前为止,但我得到一个错误,说你不能使用.copy这种select。 有人可以请build议解决这个问题。 谢谢。

Sub test() Application.ScreenUpdating = False ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants).Copy With Sheets("Sheet2") .Activate .Range("A1").Select ActiveSheet.Paste Link:=True End With Application.CutCopyMode = False Application.ScreenUpdating = True End Sub 

您可以逐个迭代SpecialCells范围,并根据源单元格地址写入链接,如下所示

 Sub test() Dim cl As Range Dim sh As Worksheet Dim ShName As String Dim OldCalc As XlCalculation Application.ScreenUpdating = False OldCalc = Application.Calculation Application.Calculation = xlCalculationManual Set sh = Worksheets("Sheet2") sh.Cells.Clear '<-- Optional ShName = "='" & ActiveSheet.Name & "'!" For Each cl In ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants) sh.Range(cl.Address).Formula = ShName & cl.Address Next Application.ScreenUpdating = True Application.Calculation = OldCalc End Sub 

虽然在一个范围内循环并不理想(由于速度),在这种情况下可能是足够的。

如果活动工作表为空,这个Sub将会出错:你可能想为这种情况添加一个error handling程序