Worksheet 数据编辑界面,位于同一个工作簿中。我的用户表单按钮在工作表 A 上,而数据库(从中提取数据)在另一个工作表中。我目前正在研究搜索功能-6ren">
gpt4 book ai didi

vba - "Type mismatch"将值从单元格复制到文本框时出错

转载 作者:行者123 更新时间:2023-12-04 20:35:14 25 4
gpt4 key购买 nike

我目前正在做一个简单的 Userform <> Worksheet 数据编辑界面,位于同一个工作簿中。我的用户表单按钮在工作表 A 上,而数据库(从中提取数据)在另一个工作表中。我目前正在研究搜索功能(下面包含的整个代码块),并且在以下行遇到“类型不匹配”错误:

MsgBox ws.Range("B" + cRow).Value

我曾尝试使用 CVar() 和其他替代方法,但它不能解决问题。

我的预期工作流程是,当用户在“txtCompany”文本框中输入公司名称并单击搜索按钮时,它将在“公司名称”(D 列)列中的数据库中搜索类似名称并返回所有其他值在该行中到我的用户表单中的文本框。

如果有人能告诉我是什么导致了这个问题,我将不胜感激。 Sub 的完整代码如下:
Private Sub btnSearch_Click()

Dim lRow As Long
Dim ws As Worksheet
Dim srcterm As String
Dim datevalue As String
Dim cCol, cRow As Integer

Set ws = ThisWorkbook.Worksheets("Database")
lRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

Dim x As Control
For Each x In frmSearch.Controls
If TypeName(x) = "TextBox" Then
x.Value = ""
End If
Next x

srcterm = txtCompany.Value
MsgBox lRow

For Each cell In ws.Range("D3:D" & lRow)

If cell.Value Like srcterm Then

cRow = cell.Row
MsgBox cRow
MsgBox ws.Range("B" + cRow).Value

With frmSearch
.txtDate.Value = ws.Range("B" + cRow).Value
.txtCustomer.Value = ws.Cells("C" + cRow).Value
.txtCompany.Value = ws.Cells("D" + cRow).Value
.txtAddress.Value = ws.Cells("E" + cRow).Value
.txtContact.Value = ws.Cells("F" + cRow).Value
.txtEmail.Value = ws.Cells("G" + cRow).Value
.txtStatus.Value = ws.Cells("H" + cRow).Value
End With

datevalue = ws.Cells("A" + cRow).Value
End If

Next cell

End Sub

最佳答案

"B" + cRow



这不是在 VBA 中将数字连接到字符串的方式。你应该使用:
"B" & cRow
' ^^^

好的 +运算符用于连接字符串,即 "a" + "b"但是在字符串和数字上尝试时,它是类型不匹配的。您可以使用 "B" + CStr(cRow)但我建议您完全放弃使用 + VBA 中字符串连接的运算符并坚持 &运营商为此事。

关于vba - <Excel-VBA> "Type mismatch"将值从单元格复制到文本框时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43485032/

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