excel - 用户表单用“with”填充多张工作表
问题描述
我的代码有问题。我需要用一个用户表单更新多张工作表。但是,我的代码不断给我错误。任何帮助,将不胜感激。
Private Sub AddItem_Click()
Dim r As Long
Dim r1 As Long
Dim Sheet1 As Worksheet
Dim Sheet4 As Worksheet
With Worksheets("Sheet1", "Sheet4")
r = .Range("A" & .Rows.Count).End(xlUp).Row + 1
r1 = .Range("A" & .Rows.Count).End(xlUp).Row + 1
.Range("A" & r) = Me.txtFN
.Range("A" & r1) = Me.txtFN
.Range("B" & r) = Me.txtLN
解决方案
该Worksheets
属性采用单个参数,而不是工作表名称列表;您需要通过调用来包装工作表名称列表,Array(...)
以便为其提供多个工作表名称。
With Worksheets(Array("Sheet1", "Sheet4"))
但这样做只会使Worksheets
调用成功 - 它仍然不会返回您期望使用的对象。
With
块包含对对象的引用。在这种情况下,对象类是Excel.Sheets
,它是工作表的集合。
工作表集合没有属性Range
;你不能像对待单身一样对待它Worksheet
。
假设您打算将该逻辑应用于集合中的所有Worksheets
对象,则需要遍历该集合中的工作表。
Dim ws As Worksheet
For Each ws In Worksheets(Array("Sheet1", "Sheet4"))
With ws
r = .Range("A" & .Rows.Count).End(xlUp).Row + 1
...
End With
Next
推荐阅读
- python - 从字符串 NLP 中删除英语“废话”单词的策略,例如“um”、“uh”
- javascript - 循环多个表并在选项卡中搜索时出现 DataTable 重新初始化错误
- python - 有没有办法用 kivy 在 Button Release 上重新启动整个应用程序?
- r - 有条件地将数据放入预建报告中
- python - 带有资源句柄的 TensorFlow 自定义 C++ 操作
- cobalt - 当视频在 Cobalt 19 上开始播放时,是否有回调会在视频开始时提醒我?
- php - 如何使用没有 Ajax 的提交按钮一从表单发送多个参数
- javascript - javascript中的多元素样式
- javascript - 解析多行字符串
- html - html/css 代码中的“无法加载图像 #1”错误