,此示例的代码如下:

  1. 首先定义变量和输入关键字:

Sub ImportData() Dim wbSource As Workbook Dim wsTarget As Worksheet Dim keyword As String Dim lastRow As Long Dim i As Long

keyword = InputBox("请输入要覆盖的关键字:")

  1. 打开源工作簿和目标工作簿,并检查目标工作簿是否有指定列标题:

Set wbSource = Workbooks.Open("C:\SourceWorkbook.xlsx") Set wsTarget = ThisWorkbook.Sheets("TargetSheet")

If wsTarget.Range("A1").Value = "指定列标题" Then

  1. 如果目标工作簿有指定列标题,则遍历目标工作簿中的行并删除包含关键字的行:

lastRow = wsTarget.Cells(wsTarget.Rows.Count, "A").End(xlUp).Row For i = lastRow To 1 Step -1 If InStr(1, wsTarget.Cells(i, "A").Value, keyword) > 0 Then wsTarget.Rows(i).Delete End If Next i

  1. 然后遍历源工作簿中的行,并将包含关键字的行复制到目标工作簿的末尾:

lastRow = wbSource.Sheets("SourceSheet").Cells(wbSource.Sheets("SourceSheet").Rows.Count, "A").End(xlUp).Row For i = 2 To lastRow If InStr(1, wbSource.Sheets("SourceSheet").Cells(i, "A").Value, keyword) > 0 Then wsTarget.Rows(wsTarget.Cells(wsTarget.Rows.Count, "A").End(xlUp).Row + 1).Value = wbSource.Sheets("SourceSheet").Rows(i).Value End If Next i

  1. 如果目标工作簿没有指定列标题,则直接将源工作簿中的数据复制到目标工作簿的末尾:

Else lastRow = wbSource.Sheets("SourceSheet").Cells(wbSource.Sheets("SourceSheet").Rows.Count, "A").End(xlUp).Row wsTarget.Rows(wsTarget.Cells(wsTarget.Rows.Count, "A").End(xlUp).Row + 1).Resize(lastRow - 1, wbSource.Sheets("SourceSheet").Columns.Count).Value = wbSource.Sheets("SourceSheet").Range("A2").Resize(lastRow - 1, wbSource.Sheets("SourceSheet").Columns.Count).Value End If

  1. 最后关闭源工作簿:

wbSource.Close False End Sub

vba实现覆盖导入以下是VBA代码示例用于覆盖导入数据:Sub ImportDataDim wb As WorkbookDim ws As WorksheetDim rng As RangeSet wb = WorkbooksOpenCDataxlsx 打开数据文件Set ws = ThisWorkbookSheetsSheet1 将数据导入到Sheet1Set rng = wsRangeA1 从

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

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