Подскажите пожалуйста как в приведенном ниже макросе выделенные ячейки вывести в начало макроса сделав их "ссылками" скажем так: [vba]
Код
Dim iFoundRng As Range, iRow As Long Dim iDataWb As Workbook, TmpWb As Workbook, FoundFlag As Boolean Dim MsgResult As VbMsgBoxResult, iTempSht As Worksheet, iListSht As Worksheet
Lable1=[b]9[/b] Lable2=[b]J9[/b] Lable3=[b]J:J[/b] и т.д. до Lable х=[b]К[/b]
[/vba]
[vba]
Код
Sub макрос () Dim iFoundRng As Range, iRow As Long Dim iDataWb As Workbook, TmpWb As Workbook, FoundFlag As Boolean Dim MsgResult As VbMsgBoxResult, iTempSht As Worksheet, iListSht As Worksheet
Application.ScreenUpdating = False
For Each TmpWb In Workbooks If Not TmpWb.Name = ThisWorkbook.Name And TmpWb.Name <> "PERSONAL.XLS" Then MsgResult = MsgBox(TmpWb.Name, vbYesNoCancel + vbDefaultButton2 + vbQuestion, "Text*") If MsgResult = vbCancel Then Exit Sub If MsgResult = vbYes Then Set iDataWb = Workbooks(TmpWb.Name) Exit For End If End If Next TmpWb Set TmpWb = Nothing Set iListSht = ThisWorkbook.Worksheets("Лист1")
FoundFlag = False With iListSht For iRow = [b]9[/b] To .Range("[b]J9[/b]").End(xlDown).Row
For Each iTempSht In iDataWb.Worksheets Set iFoundRng = iTempSht.Range("[b]J:J[/b]").Find(iListSht.Cells(iRow, "[b]G[/b]"), , xlFormulas, xlWhole)
If Not iFoundRng Is Nothing Then FoundFlag = True .Cells(iRow, "[b]K[/b]") = iTempSht.Cells(iFoundRng.Row, "[b]AQ[/b]") .Cells(iRow, "[b]L[/b]") = iTempSht.Cells(iFoundRng.Row, "[b]AI[/b]")
End If Next iTempSht If FoundFlag = False Then iListSht.Cells(iRow, "[b]K[/b]") = "No"
FoundFlag = False Next iRow End With
Application.ScreenUpdating = True
'MsgBox "Stop", vbInformation, "Stop"
End Sub
[/vba]
[admin]Тема закрыта. Причина: Нарушение правил пп 2, 3[/admin]
Подскажите пожалуйста как в приведенном ниже макросе выделенные ячейки вывести в начало макроса сделав их "ссылками" скажем так: [vba]
Код
Dim iFoundRng As Range, iRow As Long Dim iDataWb As Workbook, TmpWb As Workbook, FoundFlag As Boolean Dim MsgResult As VbMsgBoxResult, iTempSht As Worksheet, iListSht As Worksheet
Lable1=[b]9[/b] Lable2=[b]J9[/b] Lable3=[b]J:J[/b] и т.д. до Lable х=[b]К[/b]
[/vba]
[vba]
Код
Sub макрос () Dim iFoundRng As Range, iRow As Long Dim iDataWb As Workbook, TmpWb As Workbook, FoundFlag As Boolean Dim MsgResult As VbMsgBoxResult, iTempSht As Worksheet, iListSht As Worksheet
Application.ScreenUpdating = False
For Each TmpWb In Workbooks If Not TmpWb.Name = ThisWorkbook.Name And TmpWb.Name <> "PERSONAL.XLS" Then MsgResult = MsgBox(TmpWb.Name, vbYesNoCancel + vbDefaultButton2 + vbQuestion, "Text*") If MsgResult = vbCancel Then Exit Sub If MsgResult = vbYes Then Set iDataWb = Workbooks(TmpWb.Name) Exit For End If End If Next TmpWb Set TmpWb = Nothing Set iListSht = ThisWorkbook.Worksheets("Лист1")
FoundFlag = False With iListSht For iRow = [b]9[/b] To .Range("[b]J9[/b]").End(xlDown).Row
For Each iTempSht In iDataWb.Worksheets Set iFoundRng = iTempSht.Range("[b]J:J[/b]").Find(iListSht.Cells(iRow, "[b]G[/b]"), , xlFormulas, xlWhole)
If Not iFoundRng Is Nothing Then FoundFlag = True .Cells(iRow, "[b]K[/b]") = iTempSht.Cells(iFoundRng.Row, "[b]AQ[/b]") .Cells(iRow, "[b]L[/b]") = iTempSht.Cells(iFoundRng.Row, "[b]AI[/b]")
End If Next iTempSht If FoundFlag = False Then iListSht.Cells(iRow, "[b]K[/b]") = "No"
FoundFlag = False Next iRow End With
Application.ScreenUpdating = True
'MsgBox "Stop", vbInformation, "Stop"
End Sub
[/vba]
[admin]Тема закрыта. Причина: Нарушение правил пп 2, 3[/admin]MASRUB
Сообщение отредактировал Serge_007 - Четверг, 02.10.2014, 22:10
[/vba] буквы столбцов можно заменить номерами, и тогда получится что-то вроде такого: [vba]
Код
Dim K As Long, L As Long, Q As Long, I As Long K = 11 L = 12 Q = 43 I = 35 .Cells(iRow, K) = iTempSht.Cells(iFoundRng.Row, Q) .Cells(iRow, L) = iTempSht.Cells(iFoundRng.Row, I)
[/vba] буквы столбцов можно заменить номерами, и тогда получится что-то вроде такого: [vba]
Код
Dim K As Long, L As Long, Q As Long, I As Long K = 11 L = 12 Q = 43 I = 35 .Cells(iRow, K) = iTempSht.Cells(iFoundRng.Row, Q) .Cells(iRow, L) = iTempSht.Cells(iFoundRng.Row, I)
Немножко не об этом, метки нужны так как часто приходиться менять столбцы, и искать в макросе названия столбцоа проблематично. Проще в шапку вынести в виде меток. Надеюсь так понятнее будет?
Немножко не об этом, метки нужны так как часто приходиться менять столбцы, и искать в макросе названия столбцоа проблематично. Проще в шапку вынести в виде меток. Надеюсь так понятнее будет?MASRUB
Пользуйтесь именованными диапазонами - ячейками в строке заголовков столбцов. Тогда Вы столбцы сможете перемещать как хотите. Или оперативно через диспетчер имён переназначать макросу другие столбцы, изменяя "приписку" имени к ячейке. А в макросе, естественно, обращайтесь к именам.
Пользуйтесь именованными диапазонами - ячейками в строке заголовков столбцов. Тогда Вы столбцы сможете перемещать как хотите. Или оперативно через диспетчер имён переназначать макросу другие столбцы, изменяя "приписку" имени к ячейке. А в макросе, естественно, обращайтесь к именам.Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Четверг, 02.10.2014, 22:37
Проблема в том что бывает несколько разных макросов используется в новых файлах с произвольным порядком столбцов и произвольными именами. хотелось бы пример как все же сделать ссылками
Проблема в том что бывает несколько разных макросов используется в новых файлах с произвольным порядком столбцов и произвольными именами. хотелось бы пример как все же сделать ссылкамиMASRUB