Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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 未正确返回值_Vb.net_Excel_Vba - Fatal编程技术网

Vb.net 未正确返回值

Vb.net 未正确返回值,vb.net,excel,vba,Vb.net,Excel,Vba,这是我的设想。我想从Excel工作表“Sheet2”中的数据中读取值。如何将特定单元格的值读入变量,以便进行计算等?这就是我所拥有的,但我无法让它发挥作用。我错过什么了吗 Private Sub CommandButton1_Click() 'Worksheets("Sheet2").Select Range("A1").Select Dim i, iHdr, iLine, sOutStr Dim sDatum, sVerskaf As String Dim sNr, sBoL, sPOOrd

这是我的设想。我想从Excel工作表“Sheet2”中的数据中读取值。如何将特定单元格的值读入变量,以便进行计算等?这就是我所拥有的,但我无法让它发挥作用。我错过什么了吗

Private Sub CommandButton1_Click()
'Worksheets("Sheet2").Select
Range("A1").Select

Dim i, iHdr, iLine, sOutStr
Dim sDatum, sVerskaf As String
Dim sNr, sBoL, sPOOrder, sStockCode, sOrder, sVragbief, sNommer, sBondel, sLotNum,    sKaartjie, sKode, sM3Hash, sStukke, sLengte, sBreedte, sDikte, sM3At, sM3, sEen
Dim sXML

i = 3

For Each sCellA In Sheets("Sheet2").Range("B" & i & ":B10")
    i = i + 1
    sDatum = Cells(i, 1).Value
    sVerskaf = Cells(i, 2).Value
    sNr = Cells(i, 3).Value
    sBoL = Cells(i, 4).Value
    sPOOrder = Cells(i, 5).Value
    sStockCode = Cells(i, 6).Value
    sXML = "<Info><Date>" & sDatum & "</Date>"
    sXML = sXML & "<Supplier>" & sVerskaf & "</Supplier>"
    sXML = sXML & "<Number>" & sNr & "</Number>"
    sXML = sXML & "<BoL>" & sBoL & "</BoL>"
    sXML = sXML & "<PurchaseOrder>" & sPOOrder & "</PurchaseOrder>"
    sXML = sXML & "<StockCode>" & sStockCode & "</StockCode></Info>"
Next
'MsgBox sXML, vbInformation

End Sub
Private子命令按钮1\u单击()
'工作表(“表2”)。选择
范围(“A1”)。选择
Dim i、iHdr、iLine、sOutStr
Dim sDatum,sVerskaf作为字符串
暗信噪比、sBoL、Spooder、sStockCode、sOrder、sVragbief、Snomer、sBondel、sLotNum、sKaartjie、sKode、sM3Hash、sStukke、sLengte、sBreedte、sDikte、sM3At、sM3,见
Dim-sXML
i=3
对于每一张图纸(“图纸2”)。范围(“B”&i&“:B10”)
i=i+1
sdatam=单元格(i,1)。值
sVerskaf=单元格(i,2).值
信噪比=单元(i,3).值
sBoL=单元格(i,4)。数值
sPOOrder=单元格(i,5).值
sStockCode=单元格(i,6).值
sXML=“&sdatam&”
sXML=sXML&&sVerskaf&
sXML=sXML&&sNr&
sXML=sXML&&sBoL&
sXML=sXML&&sPOOrder&
sXML=sXML&&sStockCode&“
下一个
'MsgBox sXML,vb信息
端接头
有几件事:

  • 您不能像这样对每个使用
    对于每个
    在不需要索引值的情况下遍历一系列对象(如
    i
    ),使用
    Sheet.cells(i,j)
    选项,使用常规For循环遍历单元格

  • 由于您引用的是一列值,因此根本不需要for循环,只需直接访问单元格
    Sheets(“Sheet2”)。单元格(3,1)
    ActiveSheet.cells(3,2)

  • 最后,您不需要将这些值分配给变量,您可以简单地直接在xml格式中使用单元格值:
    sXML=“”&Sheets(“Sheet2”)。单元格(3,1)。Value&“


  • 另一个愚蠢的问题:我需要将变量声明为字符串还是dim变量可以用来存储任何值?假设您使用的是较新版本的vba,比如Excel 2007+,您可以将变量声明为需要的任何类型。VBA通过从范围值隐式转换为Variable@user3180965或者,您可以将其声明为字符串或变量,但VBA程序员建议不要总是使用变量数据类型来捕获意外的编程错误。非常正确。类型检查是一件很棒的事情。确保在代码顶部设置
    Option Explicit
    Option Strict On
    ,如何获取包含数据的最后一行