代码之家  ›  专栏  ›  技术社区  ›  Kevin

将单元格区域插入其他工作表

  •  0
  • Kevin  · 技术社区  · 7 年前

    我有一张工作表,它有一个范围,其中包含从扫描仪获得的数字(扫描仪使用后将数字放在该范围内),具有序列号和日期(从B9到C20)等信息,以及一个指示零件编号的单元(L2)。使用按钮(带宏的打印按钮)打印此数据后,将使用一个用于从该范围中删除数据的按钮。我想做的是在“擦除”按钮中有一个宏,每次按下该按钮时,它都会将单元格和l2区域的数据复制到另一个工作表中,并创建一个数据库。下面是包含信息的工作表。 enter image description here

    这是我的当前代码:

    Sub Test()
    Dim the_sheet As Worksheet
    Dim table_list_object As ListObject
    Dim table_object_row As ListRow
    
    Set the_sheet = Sheets("Base de datos")
    
    
    Set table_list_object = Sheets("Base de datos").ListObjects("table1")
    
    
    Set table_object_row = table_list_object.ListRows.Add
    
    
    last_row_with_data = the_sheet.Range("A65536").End(xlUp).Row
    
    the_sheet.Range("A" & last_row_with_data) = ActiveSheet.Range("B9:B20")
    
    the_sheet.Range("B" & last_row_with_data) = ActiveSheet.Range("C9:C20")
    
    ' the_sheet.Range("C" & last_row_with_data) = ActiveSheet.Range("L2")
    
    ' the_sheet.Range("D" & last_row_with_data) = ActiveSheet.Range("L3")
    
    
    
    End Sub
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   urdearboy    7 年前

    你可能需要修改这个以满足你的需要,因为我不确定你的标准是什么,但这应该让你开始!首先,创建一个名为“数据库”的工作表。我假设您的复制范围是静态的。如果范围不是静态的,您可以“取消注释”代码的“rCount”部分,并修改以设置动态复制范围。

    当前,代码将复制您的范围(b9:m20),并将其粘贴到列A上最后一行名为“数据库”的新工作表上。

    为了清除您的表,我将在下面创建另一个宏(您可以只录制一个宏),标题为“macro_title”。在“end sub”之前

        Call Macro_Title
    

    Public Sub Wow()
    
    'Declare Variables
    Dim wsOrigin As Worksheet
    Dim wsDataBase As Worksheet
    Set wsOrigin = Thisworkbook.Sheets("Base de datos")
    Set wsDataBase = Thisworkbook.Sheets("Database")
    
    Application.ScreenUpdating = False
    
    'Copy/Special Paste Desired Data
    Dim COPYME As Range
    'Dim RCount As Integer
    Dim RCount2 As Integer
    
    'RCount = wsOrigin.Range("L" & wsOrigin.Rows.Count).End(xlUp).Row
    RCount2 = wsDataBase.Range("A" & wsDataBase.Rows.Count).End(xlUp).Row
    
    Set COPYME = wsOrigin.Range("B9:M20))
    COPYME.Copy
    
    wsDataBase.Range("A" & RCount2 + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    
    Application.ScreenUpdating = True
    
    End Sub