以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  引用EXCEL数据赋值的按钮代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173010)

--  作者:shenfengxiaozi
--  发布时间:2021/11/10 16:53:00
--  引用EXCEL数据赋值的按钮代码

希望实现,把这个路径的表格的SHEET1的 A列不为空的内容,全部赋值到表A的第一列中,代码怎么写

 

D:\\123.xls


--  作者:有点蓝
--  发布时间:2021/11/10 17:00:00
--  
参考:http://www.foxtable.com/webhelp/topics/2334.htm

Dim Book As New XLS.Book("D:\\123.xls")
Dim 
Sheet As XLS.Sheet = Book.Sheets(0)
Tables("表A").StopRedraw()
\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
if Sheet(n,0).text > ""
    Dim 
r As Row = Tables("表A").AddNew()
    
r("第一列") = Sheet(n,0).Value
next
Next
Tables(
"表A").ResumeRedraw()

--  作者:shenfengxiaozi
--  发布时间:2021/11/10 17:14:00
--  
你好,用模拟 复制 粘贴 的代码 是不是更简洁快速?那个怎么写?
--  作者:有点蓝
--  发布时间:2021/11/10 17:16:00
--  
2楼更简洁快速。不需要打开execl文件就可以导入数据
[此贴子已经被作者于2021/11/10 17:16:21编辑过]

--  作者:shenfengxiaozi
--  发布时间:2021/11/10 17:43:00
--  
Sheet.Rows.Count -1 这个值会不会很大,我记得表格的行往下拖很长的?会影响计算吗?
--  作者:有点蓝
--  发布时间:2021/11/11 8:32:00
--  
Sheet.Rows.Count 指实际使用的行数,不用的行不会计算的
--  作者:shenfengxiaozi
--  发布时间:2021/11/12 11:32:00
--  
 

Dim Book As New XLS.Book(路径1)

Dim Sheet As XLS.Sheet = Book.Sheets(0)

For n As Integer = 1 To sheet.Rows.count - 1

       Dim r As Row = Tables("表A").addnew()

       r("第一列")= sheet(n,0).value    

Next


Dim Book1 As New XLS.Book(路径2)

Dim Sheet1 As XLS.Sheet = Book1.Sheets(0)

For n1 As Integer = 1 To sheet.Rows.count - 1

        Dim r1 As Row = Tables("表A").addnew()

        r1("第二列")= sheet1(n1,0).value

Next

 

 

再请问下,按这个代码,运行的效果如下图左侧,如何实现右侧的效果?

 


图片点击可在新窗口打开查看此主题相关图片如下:捕获1.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/11/12 12:09:00
--  

Dim Book As New XLS.Book(路径1)

Dim Sheet As XLS.Sheet = Book.Sheets(0)

For n As Integer = 1 To sheet.Rows.count - 1

       Dim r As Row = Tables("表A").addnew()

       r("第一列")= sheet(n,0).value    

Next


Dim Book1 As New XLS.Book(路径2)

Dim Sheet1 As XLS.Sheet = Book1.Sheets(0)

Dim r1 As Row

For n1 As Integer = 1 To sheet.Rows.count - 1

if  n1 < Tables("表A").rows.count

    r1 = Tables("表A").rows(n1 - 1)

else

        r1 = Tables("表A").addnew()

end if

        r1("第二列")= sheet1(n1,0).value

Next


--  作者:shenfengxiaozi
--  发布时间:2021/11/12 12:29:00
--  

版主 我看你写 if 语句时, 经常不带 then,没有影响吗


--  作者:有点蓝
--  发布时间:2021/11/12 13:30:00
--  
没有