【发布时间】:2020-08-08 08:16:41
【问题描述】:
我正在使用下面的代码从另一个 excel 文件中导入 excel 中的数据。
我还在 C 列和 E 列上设置了下拉列表。当我运行此宏时,它会覆盖下拉列表数据。
如果用户没有导入正确的名称和城市,我希望它应该给出错误,并且还给出了那个 () 的建议?
如果我能实现这个逻辑,有没有可能。
Dim FileToOpen As String
Dim OpenBook As Workbook
Application.ScreenUpdating = False
Application.CutCopyMode = False
FileToOpen = Application.GetOpenFilename(Title:="Browse for your file")
If FileToOpen <> flase Then
Set OpenBook = Application.Workbooks.Open(FileToOpen)
OpenBook.Sheets(1).Range("A2:F21").Copy
ThisWorkbook.Worksheets("Data").Range("B4").PasteSpecial xlPasteValues
OpenBook.Close False
Application.CutCopyMode = False
End If
Application.ScreenUpdating = True
【问题讨论】:
-
.PasteSpecial xlPasteValues如果粘贴的数据与数据验证列表数据不匹配,则不会触发错误。快速提问。所有单元格都具有相同的验证吗? -
所有单元格的验证不同
-
我已经按照您的建议粘贴数据 ThisWorkbook.Worksheets("Data").Range("B4").PasteSpecial xlPasteValues
-
我可以轻松地花 30 分钟来编写代码和测试并发布解决方案,但这对您没有帮助... Google vba excel range to array 和 vba .Validation 和 vba .Formula1 然后试着想出一个代码。我们将从那里继续
-
另请参阅@MathieuGuindon 的THIS,您可以在我上面提到的逻辑中使用它来检查值是否满足条件......