excel - 使用文本框中的文本自动/合并来自许多 Excel 工作簿的数据
问题描述
我从我的前任那里继承了一组 Excel 文件。这些文件由一个包含许多工作表的表单组成,其中的部分已由其他用户完成。来自用户的输入包括输入到单元格和文本框中的数据。有很多数据和带有文本框的不同表格,我想将它们总结成一种我可以轻松使用的格式。
我对 Excel 中的宏不是很熟悉,但我捏造了一个可以在空的、打开的 Excel 文档上运行的宏:
- 询问我要打开哪个文件
- 获取“数据”表并将其复制并粘贴到打开的活动工作簿中
- 关闭我从中获取数据的文件
这涵盖了输入到单元格中的所有数据。
我还想用文本框中的文本填充新工作簿中的一些单元格。所以最后我在一张纸上为每个用户汇总了所有数据。但是,我在网上寻找任何解决方案以成功地从文本框中收集信息时遇到问题。
我已经根据该线程的建议尝试了解决方案,但我收到错误 Run-time error '438': Object doesn't support this property or method : VBA/Macro code to get the value of textbox
Sub ffs()
Dim wbkS As Workbook
Dim wshS As Worksheet
Dim wshT As Worksheet
Dim strFile As String
With Application.FileDialog(1) ' msoFileDialogOpen
.Filters.Clear
.Filters.Add "Excel workbooks", "*.xls;*.xlsx;*.xlsb;*.xlsm"
.InitialFileName = "D:\Macro testing area"
If .Show Then
strFile = .SelectedItems(1)
Else
MsgBox "No file selected", vbCritical
Exit Sub
End If
End With
Application.ScreenUpdating = False
Set wshT = ActiveSheet
Set wbkS = Workbooks.Open(Filename:=strFile, ReadOnly:=True)
Set wshS = wbkS.Worksheets("Data")
Set wshS1 = wbkS.Worksheets("Section 1")
wshT.Range("A1:L88").Value = wshS.Range("A1:L88").Value
' Optional: close source workbook
wbkS.Close SaveChanges:=False
Application.ScreenUpdating = True
End Sub
理想情况下,我希望在文件关闭之前在这行代码下面添加一些额外的代码:
wshT.Range("A1:L88").Value = wshS.Range("A1:L88").Value
我想将 wbkS.Worksheets("Section 1") 中的文本框值添加到指定的单元格中。但是我的尝试没有成功,例如:
wshT.Range("J3").Value = wshS1.TextBox1_1.Value
我假设我在宏的工作方式上存在逻辑缺陷,但我无法找到解决方案。任何建议将不胜感激。
解决方案
推荐阅读
- javascript - 使用 Javascript 单击按钮后如何显示表单?为什么这段代码不起作用?
- asp.net-core-identity - 如何在 ASP.NET Core Identity 中获取/加载现有用户
- html - 如何将 aria-required 添加到 Material-UI 选择组件
- javascript - 从输入中获取值并将其转换为百分比值以用于绘图饼图中
- python-3.x - TclError:图像“pyimage3”不存在(仅在第一次运行时有效)
- php - Laravel API 控制器 | 如何在控制器的这种“更新”方法中散列密码?
- java - Android 如何使用 SimpleDateFormat 添加新日期
- laravel - 如何在 laravel 的同一页面中显示下拉选择的值?
- r - 使用 slice() 作为 [] 的替代方法
- python - 如何在 django 3.0.7 和 django-allauth 0.43.0 中覆盖 django-allauth 模板