提问人:James Oliver 提问时间:11/12/2023 最后编辑:Mark RotteveelJames Oliver 更新时间:11/13/2023 访问量:29
查找并替换为差异 [已关闭]
Find and replace with a difference [closed]
问:
我正在尝试添加查找和替换。我需要能够有一个要查找的项目列表以及要用什么替换它。我以为我可以使用带有两列“查找”和“替换”的第二个 DataGridView。然后,我需要根据列表框进行检查。下面解释了我目前拥有的应用程序以及我如何获取我使用的数据。
该应用程序允许我获取电子邮件中收到的数据并转换/添加其他数据,然后以允许我将数据粘贴到 Microsoft CRM 中的方式对其进行格式化。
该窗体具有一个多行文本框和两个可见的“转换”和“清除”按钮,以及一个不可见的列表框和两个 DataGridview。
我通过电子邮件接收数据,其中有一个表格,在大多数情况下,电子邮件正文中有 4 列,如下所示
项目 | 法典 | 不含增值税 | 含增值税 |
---|---|---|---|
21.5英寸显示器 | 23999 | 60.99 | 73.19 |
USB 耳机 | 14821 | 19.20 | 23.04 |
打印机 | 21221 | 40.99 | 49.19 |
软件 | 33398 | 29.20 | 35.04 |
软件和硬件驱动程序到新笔记本电脑上 | 15 | 18 |
我将电子邮件中的数据复制并粘贴到表单上的多行文本框中,然后单击转换按钮,该按钮执行以下操作并将数据转换为逗号分隔值,并将其发送到列表框。
21.5寸显示器,23999,60.99,73.19
Dim lines() As String = TextBox2.Text.Split(vbNewLine.ToCharArray, StringSplitOptions.RemoveEmptyEntries)
TextBox2.Text = ""
TextBox2.Text = String.Join(vbNewLine, lines)
Dim strText() As String
strText = Split(TextBox2.Text, vbCrLf)
MsgBox(strText.Count) ' OR MsgBox(strText.Count + 1)
ListBox1.Items.Clear()
ListBox1.Items.AddRange(strText.ToArray)
Dim i As Integer
For i = 0 To ListBox1.Items.Count - 1
Dim arrWords() As String = ListBox1.Items(i).Split(",")
Dim dr As New DataGridViewRow
DataGridView3.Rows.Add(dr)
DataGridView3.Rows(i).Cells(0).Value = ("Item")
DataGridView3.Rows(i).Cells(1).Value = ("1")
DataGridView3.Rows(i).Cells(2).Value = arrWords(1)
DataGridView3.Rows(i).Cells(3).Value = arrWords(2)
DataGridView3.Rows(i).Cells(4).Value = ("VAT20")
DataGridView3.Rows(i).Cells(5).Value = arrWords(2)
'--------------------------------
Next i
'working above
DataGridView3.SelectAll()
Clipboard.SetDataObject(DataGridView3.GetClipboardContent())
对于列表框中的数据,我希望在将日期发送到 DataGridView 之前查找和替换或删除我不想要的行。
我以为我可以使用带有两列“查找”和“替换”的第二个 DataGridView。然后对照列表框检查一下,但我不确定最佳方法。
答: 暂无答案
评论
ListBox
ListView