Юрій Марків
 
Академік
     
 
Повідомлень: 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 
   |   
 | 
 
| 
 | 
 
 
 |