VBA 覆盖导入数据和标识添加数据
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 列都将为空白值。
原文地址: https://www.cveoy.top/t/topic/jDVI 著作权归作者所有。请勿转载和采集!