gpt4 book ai didi

Excel VBA 复制

转载 作者:行者123 更新时间:2023-12-02 11:55:51 25 4
gpt4 key购买 nike

我的任务是在 Excel 中创建一个带有输入表单的可搜索数据库。我需要一个宏来将输入表单中的数据移动到数据库工作表,将事件单元格向下偏移 1 行并仅复制值(而不是格式)

每次我尝试运行宏时,代码中都会出现运行时错误。我没有 VB 或 VBA 经验;请告诉我这有什么问题。

Sheets("Database").Select       'Navigates to Database worksheet
If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If 'Clears filters
Sheets("Entry Form").Select 'Navigates back to Entry Form worksheet

Range("E10:L10").Select ' select date, period, and data
Selection.Copy
Sheets("datatable").Select ' navigate to datatable tab
Range("A1").Select
Selection.End(xlDown).Select ' ctrl-down to last occupied row,
ActiveCell.Offset(1, 0).Select ' then one more to first blank row

Selection.PasteSpecial Paste:=xlPasteValues
'Pastes data as values only into the Database worksheet

Sheets("Entry Form").Select 'Navigates to Entry Form worksheet
Application.CutCopyMode = False 'clears copy data from clipboard
Range("E10, L10").Select
Selection.ClearContents 'Clears data from drop down selections

Range("E10").Select 'Returns selection back to Date entry box

它会转到下一页的最底部并给出 1004 错误。

最佳答案

如果您要使用 xlDown,您在 A1 中需要的不仅仅是一个列标签。 A 列中必须至少还有一个值,否则您将遍历到工作表的底部。通常最好从工作表底部向上查看,然后向下偏移一行。

With Sheets("Database")       'Primarily use Database worksheet
If .FilterMode Then .ShowAllData
With .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) 'look from bottom up then down 1 row
'direct value transfer is faster than Copy, Paste Special, Values
.Cells.Resize(1, 8) = Sheets("Entry Form").Range("E10:L10").Value
End With
End With

With Sheets("Entry Form") 'Primarily use Entry Form worksheet
.Range("E10:L10").ClearContents 'Clears data from drop down selections
.Range("E10").Select 'Returns selection back to Date entry box
End With

这利用了With ... End With statement控制哪个工作表受到关注。请参阅How to avoid using Select in Excel VBA macros了解更多摆脱依赖 select 和 activate 来实现目标的方法。

关于Excel VBA 复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31598875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com