excel 基于单元格值复制单元格

nx7onnlm  于 2022-12-05  发布在  其他
关注(0)|答案(2)|浏览(252)

我有一个电子表格,里面有很多引用(查找和链接到我从系统中提取的数据)。在单元格B1中,我有多少行实际上有我所拥有的数据。例如,工作表被称为原始数据,如果B1=100,我需要将范围B2:E102复制到工作表Master中。B1中的值是动态的,取决于另一个工作表中的数据。有人能帮我吗?谢谢

fnx2tebb

fnx2tebb1#

复制范围

Option Explicit

Sub CopyRange()
    
    ' Reference the workbook.
    Dim wb As Workbook: Set wb = ThisWorkbook ' workbook containing this code
    
    ' Reference the Source range.
    Dim sws As Worksheet: Set sws = wb.Sheets("Raw Data")
    Dim slRow As Long: slRow = sws.Range("B1").Value + 2
    Dim srg As Range: Set srg = sws.Range("B2", sws.Cells(slRow, "E"))
    
    ' Reference the first Destination cell.
    Dim dws As Worksheet: Set dws = wb.Sheets("Master")
    Dim dfCell As Range: Set dfCell = dws.Range("A1") ' adjust!?
    
    ' Either copy values, formulas and formats,...
    srg.Copy dfCell
    ' or copy only values (more efficient):
    'dfCell.Resize(srg.Rows.Count, srg.Columns.Count).Value = srg.Value
    
    ' Inform.
    MsgBox "Range copied.", vbInformation
       
End Sub
egdjgwm8

egdjgwm82#

我喜欢为Range创建一个硬编码的起始点。
然后从那里进入获取最后一列,然后是最后一行。
像这样的东西...
次主要()

strFile = "C:\Users\raw_data.xlsm" 'change this to your file name
Workbooks.Open (strFile)
'Debug.Print strFile

'log the last column for paramters
LastColumn = ActiveSheet.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

'log the last rows for components
LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row

Dim WorksheetStartCell As String

StartCellNum = 2

WorksheetHeadingStartCell = "A" & StartCellNum
WorksheetValueStartCell = "A" & StartCellNum + 1

'Debug.Print "Worksheet Heading Start Cell: " & WorksheetHeadingStartCell
'Debug.Print "Worksheet Value Start Cell: " & WorksheetValueStartCell

WorksheetHeadingEndCell = "G" & StartCellNum
WorksheetValueEndCell = "G" & LastRow

结束子组件
这将动态地为您提供除查找范围的第一个单元格之外的所有内容,这很容易,但就像您所说的,您将其硬编码为“B2”,因此我认为这是相关的。一旦您获得了实际需要的范围,如上面所写的,您可以轻松地将该范围复制并粘贴到该工作表中。我以为你需要更多的帮助与动态范围比复制和粘贴的范围,如果不是这样,我可以再次回复你的问题。我没有回复这里的很多问题,如果我没有帮上什么忙,我很抱歉。我已经尽了最大的努力来解决你的问题。我真的希望这能帮助你。

相关问题