值不正确返回

这是我的情况。 我想从Excel工作表“Sheet2”中的数据中读取值。 如何将特定单元格的值读入我可以用来进行计算的variables等等? 这是我的,但我没有得到它的工作。 我错过了什么吗?

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 

一些东西:

  1. 你不能像这样使用For EachFor Each迭代遍历一系列对象而不需要索引值(如i ),则使用常规的For循环通过使用Sheet.Cells(i,j)选项遍历单元格

  2. 因为你引用的是一列值,你甚至不需要for循环,直接访问单元格Sheets("Sheet2").Cells(3,1)ActiveSheet.Cells(3,2)等。

  3. 最后,您不需要将这些值赋给variables,您可以直接在xml sXML = "<Info><Date>" & Sheets("Sheet2").Cells(3,1).Value & "</Date>"直接使用单元格值: sXML = "<Info><Date>" & Sheets("Sheet2").Cells(3,1).Value & "</Date>"