Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VB.net删除excel中的行_Vb.net - Fatal编程技术网

使用VB.net删除excel中的行

使用VB.net删除excel中的行,vb.net,Vb.net,最近几天,我一直在搜索如何在excel中使用vb.net删除行。我已经找到了好几种方法,但我没有找到任何有效的方法。我的代码可以在下面查看: Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Dim xlapp As Excel.Application Dim xlworkbook As Excel.Workbook Dim xlworksheet As E

最近几天,我一直在搜索如何在excel中使用vb.net删除行。我已经找到了好几种方法,但我没有找到任何有效的方法。我的代码可以在下面查看:

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

    Dim xlapp As Excel.Application
    Dim xlworkbook As Excel.Workbook
    Dim xlworksheet As Excel.Worksheet
    Dim Scout As String
    Dim X As Integer
    Dim Y As Integer
    Dim xlrange As Excel.Range

    xlapp = New Excel.Application
    xlworkbook = xlapp.Workbooks.Open("D:\Computer Science\Program\Scouts1.xlsx")
    xlworksheet = xlworkbook.Worksheets("Member")
    xlrange = xlworksheet.UsedRange
    X = xlrange.Cells(1, 17).value

    Scout = CBMember.SelectedItem

    For i = 1 To X
        If Scout = xlrange.Cells(i, 2).value Then
            Y = xlrange.Cells(i, 1).value
            Y = Y + 1
        End If
    Next

    xlworksheet.DeleteRow(Y)

    xlworkbook.SaveAs("Scouts1")
    xlworkbook.Close()
    xlapp.Quit()

    Close()

End Sub

我尝试使用xlsheet.deleterow删除该行,但这似乎无法删除该行

您是否验证了由变量“Y”表示的行是您期望的行?将
xlApp.Visible=True
添加到代码中,并在
xlworksheet.DeleteRow(Y)
上设置断点。另外,添加
xlsheet.Rows(Y)。在delete语句之前选择
。当调试器停止代码执行时,切换到Excel并检查所选行。另外,您使用的是什么Excel版本?我以前从未见过
DeleteRow
命令,它没有在current中列出。因此我将代码更改为xlsheet.Rows(Y).delete。代码选择我要删除的正确行,然后删除它。但是,一旦保存,数据将重新出现。
xlworkbook.SaveAs(“Scouts1”)
将保存到Excel的默认文件路径。您正在查看正确的文件吗?通过将Dim APPDAULTPATH添加为String=xlApp.DefaultFilePath来检索此路径,并检查结果。修改后的文件是否存储在该文件夹中?这会导致密码文件不应被密码锁定。我删除了它,并将其替换为我可以访问的同一个文件,但在运行该程序后,它再次被密码锁定。一定有一些东西你没有显示给我们。保存的工作簿可以有密码的唯一方法是原始文件受密码保护或您显式设置了密码;这两个选项都没有反映在您发布的代码中。假设您选择不向我们显示实际的工作簿打开语句,请在保存之前清除密码add
xlworkbook.password=”“
。您是否验证了由变量“Y”表示的行是您期望的行?将
xlApp.Visible=True
添加到代码中,并在
xlworksheet.DeleteRow(Y)
上设置断点。另外,添加
xlsheet.Rows(Y)。在delete语句之前选择
。当调试器停止代码执行时,切换到Excel并检查所选行。另外,您使用的是什么Excel版本?我以前从未见过
DeleteRow
命令,它没有在current中列出。因此我将代码更改为xlsheet.Rows(Y).delete。代码选择我要删除的正确行,然后删除它。但是,一旦保存,数据将重新出现。
xlworkbook.SaveAs(“Scouts1”)
将保存到Excel的默认文件路径。您正在查看正确的文件吗?通过将Dim APPDAULTPATH添加为String=xlApp.DefaultFilePath来检索此路径,并检查结果。修改后的文件是否存储在该文件夹中?这会导致密码文件不应被密码锁定。我删除了它,并将其替换为我可以访问的同一个文件,但在运行该程序后,它再次被密码锁定。一定有一些东西你没有显示给我们。保存的工作簿可以有密码的唯一方法是原始文件受密码保护或您显式设置了密码;这两个选项都没有反映在您发布的代码中。假设您选择不向我们显示实际的工作簿打开语句,请在保存之前清除密码add
xlworkbook.password=”“