VBA 实现覆盖导入和标识添加数据

覆盖导入数据

Sub ImportData()
    Dim filePath As String
    Dim sheetName As String
    Dim targetSheet As Worksheet

    ' 设置导入文件路径和工作表名称
    filePath = "C:\Data\SampleData.xlsx"
    sheetName = "DataSheet"

    ' 检查文件是否存在
    If Dir(filePath) = "" Then
        MsgBox "文件不存在!"
        Exit Sub
    End If

    ' 设置目标工作表
    Set targetSheet = ThisWorkbook.Sheets("ImportData")

    ' 清空目标工作表
    targetSheet.Cells.ClearContents

    ' 导入数据
    Workbooks.Open filePath
    Sheets(sheetName).Range("A1").CurrentRegion.Copy targetSheet.Range("A1")
    Workbooks(filePath).Close False

    MsgBox "数据导入成功!"
End Sub

该代码将打开指定的 Excel 文件,将其指定工作表中的数据复制到当前工作簿的指定工作表中,并覆盖现有数据。在使用该代码之前,请确保已将文件路径和工作表名称替换为实际值。

标识添加数据

Sub 标识添加()
    Dim wb As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim last_row As Long

    ' 设置工作簿、工作表和最后一行
    Set wb = ActiveWorkbook
    Set ws1 = wb.Worksheets(1)
    Set ws2 = wb.Worksheets(2)
    last_row = ws1.Cells(Rows.Count, "A").End(xlUp).Row

    ' 循环遍历M列
    For i = 2 To last_row Step 1
        'vlookup:文化产业
        Dim vlookup_result As Variant
        vlookup_result = Application.VLookup(ws1.Cells(i, "CN").Value, ws2.Range("L:M"), 2, False)
        If IsError(vlookup_result) Or vlookup_result = CVErr(xlErrNA) Then
            ' 如果返回值为#N/A,则将GW列设置为空白值
            ws1.Cells(i, "GW").Value = ""
        Else
            ws1.Cells(i, "GW").Value = vlookup_result
        End If
    Next i
End Sub

该代码将在第一个工作表中的每一行中查找第三列(CN 列)的值,并在第二个工作表中的 L 和 M 列中查找匹配项。如果找到匹配项,则将第二列的值(M 列)添加到第一个工作表中的 GW 列中。该代码可以用于标识和添加数据。在使用该代码之前,请确保已将工作簿、工作表和列名称替换为实际值。

该代码已优化,确保返回值不论是否为 #N/A,GW 列都将为空白值。

VBA 覆盖导入数据和标识添加数据

原文地址: https://www.cveoy.top/t/topic/jDVI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录