如何插入数据从文本框来使用vb.net excel?
我卡在这里,我想插入数据从5个文本框到现有的Excel文件的列。 我发现代码,但它插入行。 我有一个代码,find最后一个非空行,从那一行我想要移动到下一行,并在那里插入数据,例如最后一行是A2,我想插入新的数据到A3,B3,C3,D3 ,E3。
我不能得到正确的循环。
Dim lRow As Long = 0 Call OpenExcelFile("C:\Users\PB\Desktop\BookRecords.xlsx", 1) With xlWorkSheet If EXL.WorksheetFunction.CountA(.Cells) <> 0 Then lRow = .Cells.Find(What:="*", _ After:=.Range("A2"), _ LookAt:=Excel.XlLookAt.xlPart, _ LookIn:=Excel.XlFindLookIn.xlFormulas, _ SearchOrder:=Excel.XlSearchOrder.xlByRows, _ SearchDirection:=Excel.XlSearchDirection.xlPrevious, _ MatchCase:=False).Row Else lRow = 1 End If lRow += 1 End With MessageBox.Show("The last row in Sheet1 which has data is " & lRow) Dim j As Integer j = 3 For i As Integer = j To 8 xlWorkSheet.Range(xlWorkSheet.Cells(lRow + 1, j).item).Value = txtTitle.Text xlWorkSheet.Range(xlWorkSheet.Cells(lRow + 1, j).item).Value = txtAuthor.Text xlWorkSheet.Range(xlWorkSheet.Cells(lRow + 1, j).item).Value = txtEdition.Text xlWorkSheet.Range(xlWorkSheet.Cells(lRow + 1, j).item).Value = txtPublisher.Text xlWorkSheet.Range(xlWorkSheet.Cells(lRow + 1, j).item).Value = txtISBN.Text Next j += 1 Call SaveAndCloseExcelSub()
这是否有帮助:
Dim j As Integer j = 3 For i As Integer = j To 8 MsgBox("Cell column: " & ColumnNumberToName(i)) Next
将数字转换为Excel的代码列名称(AZ,AA等):
Public Shared Function ColumnNumberToName(columnNumber As Int32) As String Dim dividend As Int32 = columnNumber Dim columnName As [String] = [String].Empty Dim modulo As Int32 While dividend > 0 modulo = (dividend - 1) Mod 26 columnName = Convert.ToChar(65 + modulo).ToString() + columnName dividend = DirectCast(((dividend - modulo) / 26), Int32) End While Return columnName End Function Public Shared Function ColumnNameToNumber(columnName As [String]) As Int32 If [String].IsNullOrEmpty(columnName) Then Throw New ArgumentNullException("columnName") End If Dim characters As Char() = columnName.ToUpperInvariant().ToCharArray() Dim sum As Int32 = 0 Dim i As Int32 = 0 While i < characters.Length sum *= 26 sum += (characters(i) - "A"C + 1) System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1) End While Return sum End Function
事实上,你所有的价值观都写在同一个单元格上, 然后你下来连续做一遍。 单元格被定位为(行,列) – 所以你需要像这样改变你的代码:
Dim j As Integer j = 3 For i As Integer = j To 8 xlWorkSheet.Cells(lRow + i, 1).Value = txtTitle.Text xlWorkSheet.Cells(lRow + i, 2).Value = txtAuthor.Text xlWorkSheet.Cells(lRow + i, 3).Value = txtEdition.Text xlWorkSheet.Cells(lRow + i, 4).Value = txtPublisher.Text xlWorkSheet.Cells(lRow + i, 5).Value = txtISBN.Text Next
不知道你是否需要从i = 3
开始,如果你添加lRow
,但是我相信你可以解决这个问题。
如果你想要颠倒的顺序,这样做(这个例子只复制一个文本…我开始怀疑没有必要的循环)
dim i as Integer i = 1; ' if you want column A With xlWorkSheet .Cells(lRow , i).Value = txtTitle.Text .Cells(lRow + 1, i).Value = txtAuthor.Text .Cells(lRow + 2, i).Value = txtEdition.Text .Cells(lRow + 3, i).value = txtPublisher.Text .Cells(lRow + 4, i).Value = txtISBN.Text End With
- Rails 5如何将数据从xls文件导入数据库
- 我不希望我的Excel加载项返回一个数组(而是我需要一个UDF来更改其他单元格)
- 电子邮件macros没有下一个错误
- 无法将“System .__ ComObject”types的COM对象转换为接口types“Excel._Workbook”
- 当A中有变化时,Excel将创build一个新行(来自第一行的数据)
- VBA Excel – 将stringvariables作为一行代码运行
- MS Excel:计算文本string中两个不同字符之间的字数
- 在求解器中添加单元格以进行更改
- 运行时错误'-2147217900'(80040e14)':自动化错误使用从Excel中的SQL查询中的哪里vba