Юрій Марків
Академік
Повідомлень: 795
Зареєстрований: 10-12-2003
Місто: Lviv
Нема на форумі
Настрій: :-)
|
|
VBA for Excel
Хто би мені допоміг?
Є файл .xls, у якому потрібно опрацювати дві колонки, F та J.
Вигляд приблизно такий:
F J
aaa bbb
(порожньо) ccc
(порожньо) ddd
(порожньо) (порожньо)
fff ggg
(порожньо) rrr
(порожньо) vvv
(порожньо) (порожньо)
Так от, мені потрібно, пройтися по списку і вибирати з колонки J все так, як є, а з
колонки F брати лише перше непорожнє значення і проставляти нажче в тій самій
колонці F навпроти існуючих непорожніх значень з колонки J. Коли доходимо до рядка,
де обидва значення порожні, потрібно брати наступне непорожнє значення з колонки
F і ставити в тій самій колонці F навпроти існуючого значення з колонки J. І так
далі, 23 тис. рядків.
Допоможіть плз.
|
|
Aндpiй
Дійсний член
Повідомлень: 128
Зареєстрований: 30-4-2003
Місто: Львів
Нема на форумі
Настрій: Настрій не вказаний
|
|
Допоможу, але після понеділка-абсолютно нема часу. Взагалі в exel-i то можна зробити
дуже просто: вмикаємо запис макроса -> виконуємо приблизно такі дії , як має
робити програма-> завершуємо запис макроса і йдемо у створений програмний
модуль підправляти що треба, всякі змінні замість чисел та ін.
|
|
Сергій Зіньків
Новак
Повідомлень: 1
Зареєстрований: 29-5-2009
Нема на форумі
Настрій: Настрій не вказаний
|
|
Привіт!!! Мені потрібна невеличка допомога у VBA. Написав програмку
Dim r As Integer, n As Integer, i As Integer
r = Range(Range("f3"), Range("f3").End(xlDown)).Rows.Count
n = InputBox(" Ведіть бажану суму ")
For i = 3 To r
If Cells(i, 6) < n Then
Cells(i, 8) = Cells(i, 1)
Cells(i, 9) = Cells(i, 5)
Cells(i, 10) = Cells(i, 6)
End If
Next i
вона працює виводить потрібні мені дані у 8,9 і 10 стовпець, але виводить дані у
відповідні рядки де виконується умова, а треба шоб виводило одне за одним
починаючи з першого рядка. Дивився сам шось не можу згадати шо тре зробити,
допоможіть. Дякую.
|
|
Юрій Марків
Академік
Повідомлень: 795
Зареєстрований: 10-12-2003
Місто: Lviv
Нема на форумі
Настрій: :-)
|
|
Цитата: | Оригінальне повідомлення від Юрій Марків
Хто би мені допоміг?
Є файл .xls, у якому потрібно опрацювати дві колонки, F та J.
...
|
Андрію, дякую за турботу, та рішення вже знайдено:
Цитата: |
Sub CopyExtendColumnsFandJ()
Dim X As Long
Dim Frow As Long
Dim LastDataRow As Long
Const DataStartRow As Long = 2
Const Source As String = "Sheet2"
Const Destination As String = "Sheet3"
With Worksheets(Source)
LastDataRow = .Cells(.Rows.Count, "J").End(xlUp).Row
Frow = DataStartRow
For X = DataStartRow To LastDataRow
If .Cells(X, "J").Value <> "" Then
If .Cells(X, "F").Value = "" Then
Worksheets(Destination).Cells(X, "F").Value = .Cells(Frow,
"F").Value
Else
Frow = X
Worksheets(Destination).Cells(X, "F").Value = .Cells(X, "F").Value
End If
Worksheets(Destination).Cells(X, "J").Value = .Cells(X, "J").Value
Else
Frow = X
End If
Next
End With
End Sub
|
|
|
|