.NET 4.x Запись значений из цикла в Excel - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Добрый день! Помогите пожалуйста с записью значений из цикла программы в Excel. Пробую следующим образом:
Листинг программы
  1. Imports System.IO
  2. Imports Microsoft.Office.Interop.Excel
  3. Public Class Form1
  4. Dim a, b, c, p, Y, V
  5. Dim dt, t0 As Integer
  6. Dim ExApp As New Application 'Приложение Excel
  7. Dim ExWB As Workbook 'Книга Excel
  8. Dim ExWS As Worksheet 'Лист книги Excel
  9. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  10. End Sub
  11. Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
  12. ExApp.DisplayAlerts = False
  13. If ExWS IsNot Nothing Then ExWS = Nothing
  14. If ExWB IsNot Nothing Then ExWB = Nothing
  15. ExApp.Quit()
  16. End Sub
  17. Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
  18. If ComboBox1.Text = "1" Then p = 10
  19. If ComboBox1.Text = "2" Then p = 20
  20. End Sub
  21. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  22. If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then
  23. TextBox3.Text = FolderBrowserDialog1.SelectedPath
  24. End If
  25. ExApp = CreateObject("Excel.Application")
  26. ExApp.Workbooks.Add()
  27. ExApp.ActiveWorkbook.SaveAs(Path.Combine(TextBox3.Text) & "" & "test.xls")
  28. ExApp.Visible = False
  29. ExApp.Sheets(1).Range("A1").Value = "k1"
  30. ExApp.Sheets(1).Range("B1").Value = "k2"
  31. End Sub
  32. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  33. a = TextBox1.Text
  34. b = TextBox2.Text
  35. t0 = TextBox4.Text
  36. If TextBox1.Text = String.Empty Then a = 0
  37. If TextBox2.Text = String.Empty Then b = 0
  38. If TextBox3.Text = String.Empty Then MsgBox("Не выбран путь сохранения!!!", , "ВНИМАНИЕ!")
  39. If ComboBox2.Text = "F" Then
  40. c = 2 * a * b
  41. End If
  42. If ComboBox2.Text = "F1" Then
  43. c = 5 * a * b
  44. End If
  45. Y = 8.5 / c
  46. Static counter = 0
  47.  
  48. For counter = 0 To t0 Step 20
  49. If ComboBox1.Text = "1" And ComboBox3.Text = "s" Then
  50. V = 1 / Y
  51. End If
  52. If ComboBox1.Text = "1" And ComboBox3.Text = "s1" Then
  53. V = 1 / (Y ^ 2)
  54. End If
  55. If ComboBox1.Text = "2" And ComboBox3.Text = "s" Then
  56. V = 2 / Y
  57. End If
  58. If ComboBox1.Text = "2" And ComboBox3.Text = "s1" Then
  59. V = 2 / (Y ^ 2)
  60. End If
  61. If ComboBox2.Text = "F" Then
  62. a = V*p / 3
  63. c = 2 * a * b
  64. End If
  65. If ComboBox2.Text = "F1" Then
  66. a = V*p / 6.8
  67. c = 5 * a * b
  68. End If
  69. Y = 8.5 / c
  70. Next counter
  71. ExApp.Sheets(1).Range("A2:A" & counter).Value = V
  72. ExApp.Sheets(1).Range("B2:B" & counter).Value = Y
  73. ExApp.Save()
  74. End Sub
  75. End Class
Просто нужно записать V и Y после каждого прохода цикла в колонки Excel А и В соответственно... У меня получается что он записывает одно и тоже значение (допустим V=8) и без шага (т.е. если t0 задам 100 то Excel запишет одно и тоже число 8 в колонку А подряд 100 раз, а должен с шагом 20 записать 5 раз(если я правильно понимаю значение после Step в цикле) и соответственно с каждым проходом цикла число должно быть разным, тоже самое и с Y происходит.... Спасибо!

Решение задачи: «.NET 4.x Запись значений из цикла в Excel»

textual
Листинг программы
  1. Dim j As Integer = 1 'col A
  2. For i = 2 To 5       'rows
  3.      ExApp.Sheets(1).Cells(i, j).value = i * 2
  4. Next

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут