Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Последняя заполненная строка в диапазоне.
 
Прощу прощения за не точное изъяснения.  Я не спец в VBA и всех тонкостей не знаю.
Последняя заполненная строка в диапазоне.
 
Цитата
Юрий М написал:
Код
    [URL=#]?[/URL]       1  2  3  4      Sub   qqq()    Dim   LastRow   As   Long          LastRow = Range(  "B2:E5"  ).Find(What:=  "*"  , SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row    End   Sub   
 


Что-то ни чего не происходит при исполнение этого Кода
Последняя заполненная строка в диапазоне.
 
Добры день,  Требуется по нажатию кнопки, найти последние строку в диапазоне, тк. ниже таблицы есть данные.

Примеры VBA которые я находил не ищут в диапазоне..

Спасибо за понимание.
VBA #ЗНАЧ или как организовать кодом ЕСЛИОШИБКА()
 
Код это громко сказано, простая функция скорости.


Код
Public Function MRH(IntStart#, IntEnd#, Time#) As Double
   MRH = ((IntEnd - IntStart) / Time) / 24
End Function
Изменено: Михаил - 29.11.2022 04:01:34
VBA #ЗНАЧ или как организовать кодом ЕСЛИОШИБКА()
 
Как  в VBA при написание организовать ЕСЛИОШИБКА().

Что-бы при выполнение в Excel не отображалась надпись  #ЗНАЧ
Итерация функции перенос кода с C# в VBA
 
Цитата
написал:
Код
    [URL=#]?[/URL]       1  2  3  4  5      Do          A = FunMat_Res(Ax, Bx, Cx_c)          Cx_c = FunMat_param(Ax, 0, Bx, Cx)                 i = i + i    While   i <= 1000   
 
Ну тогда
Код
 Loop While 

Скобки я сам мог убрать. Проблема в том,  что итерации не происходит Результат равен одному прогону, хотя в VBA дебагере;
Код
 i = 1001
Изменено: Михаио z - 27.11.2022 01:49:18
Итерация функции перенос кода с C# в VBA
 
Код
         do
            {
               A = (FunMat_Res(Ax, Bx, Cx_c));
               Cx_c = FunMat_param(Ax, Bx,  Cx);
                                              
               i++;
            }
      while (i <= 1000);

Помогите перенести данных код в VBA Excel.

FunMat это функции.  Нужно выполнить итерацию, в C# работает без проблем.  В VBA не получается повторить.

Изменено: Михаио z - 27.11.2022 01:28:25
Сохранить диапазон в новый файл.
 
Спасибо проблема решена!!!!
Изменено: Михаио z - 30.05.2022 10:11:35
Сохранить диапазон в новый файл.
 
Срасибо!
Осталось одна проблема.

Если исходные данные для формулы находятся вне диапазона то значения отсутствуют (ячейка пуста).
Сохранить диапазон в новый файл.
 
До сих пор проблему не решил.

Предложенный код работает частично.
1. Не сохраняет ширину столбцов
2. Если исходные данные для формулы находятся вне диапазона то значения отсутствуют (ячейка пуста).

Пример прикрепил.
Сохранить диапазон в новый файл.
 
Цитата
написал:
если нужно с форматами - скопируйте туда же и выполните  тем же способом Range2NewFile
Не понял?
Изменено: Михаио z - 21.05.2022 12:35:33
Сохранить диапазон в новый файл.
 
Цитата
написал:
Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42      Private   Sub   CommandButton1_Click()          RangeCopy Range(  "B3:D5"  )    End   Sub       Private   Sub   CommandButton2_Click()          RangeCopy Selection    End   Sub       Private   Sub   RangeCopy(rn   As   Range)          Dim   FileN$, wb   As   Workbook          FileN = ThisWorkbook.Path &   "\" & "  Test_  " & Range("  B1  ") & "  .xlsm"                   Set   wb = Workbooks.Add(1)          With   wb.Sheets(1).Cells(1, 1).Resize(rn.Rows.Count, rn.Columns.Count)              rn.Copy .Cells(1)              If   rn.Rows.Count = 1   And   rn.Columns.Count   Then                  .Value = .Value              Else                  Dim   arr   As   Variant                  arr = .Value                  .Value = arr              End   If          End   With                   On   Error   Resume   Next          Kill FileN          On   Error   GoTo   0          wb.SaveAs FileN, 52          wb.Close   False             '    ThisWorkbook.SaveCopyAs FileN    '    Set wb = Workbooks.Open(FileN)    '    ActiveSheet.DrawingObjects.Delete    'oaaeaiea anao eiiiie    '    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value    '    ActiveSheet.Copy    '    wb.Close SaveChanges:=False    '    Kill FileN    '    Mid(FileN, Len(FileN), 1) = "x"    '    ActiveWorkbook.SaveAs FileN, 51    '    ActiveWorkbook.Close SaveChanges:=False          MsgBox   "Oaeouee eeno nio?aiai a iiaie eieaa"   & FileN    End   Sub   
 
Код
Private Sub CommandButton1_Click()
    RangeCopy Range("B3:D5")
End Sub
 
Private Sub CommandButton2_Click()
    RangeCopy Selection
End Sub
 
Private Sub RangeCopy(rn As Range)
    Dim FileN$, wb As Workbook
    FileN = ThisWorkbook.Path & "\" & "Test_" & Range("B1") & ".xlsm"
     
    Set wb = Workbooks.Add(1)
    With wb.Sheets(1).Cells(1, 1).Resize(rn.Rows.Count, rn.Columns.Count)
        rn.Copy .Cells(1)
        If rn.Rows.Count = 1 And rn.Columns.Count Then
            .Value = .Value
        Else
            Dim arr As Variant
            arr = .Value
            .Value = arr
        End If
    End With
     
    On Error Resume Next
    Kill FileN
    On Error GoTo 0
    wb.SaveAs FileN, 52
    wb.Close False
     
'    ThisWorkbook.SaveCopyAs FileN
'    Set wb = Workbooks.Open(FileN)
'    ActiveSheet.DrawingObjects.Delete    'oaaeaiea anao eiiiie
'    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
'    ActiveSheet.Copy
'    wb.Close SaveChanges:=False
'    Kill FileN
'    Mid(FileN, Len(FileN), 1) = "x"
'    ActiveWorkbook.SaveAs FileN, 51
'    ActiveWorkbook.Close SaveChanges:=False
    MsgBox "Oaeouee eeno nio?aiai a iiaie eieaa" & FileN
End Sub

Добрый день. Данный код работает если формулы и исходные данные находятся в диапазоне сохранения, но если для вычисления формулы используются данные за пределами диапазона то ячейка при сохранение пуста. Вы уж извините я не силен в VBA и поиски решения в интернете этой задачи пока положительных результатов не дали. Я уже подумываю создать скрытый лист в файле, скопировать нужные данные сперва туда, а потом сохранять. Почему все так заморочно...
Изменено: Михаио z - 21.05.2022 16:52:27
Сохранить диапазон в новый файл.
 
Добрый день.
Задача:
По нажатию кнопки сохранять диапазон листа со  значениями(только значений без формул) в новый файл.

Проблема в том, примеры которые я находил сохраняют или весь лист без диапазона, либо диапазон со значениями но без свойств ячеек (цвета форматы)

Вот пример кода который делает почти как надо, но сохраняет всю область листа. Сюда бы добавить выбор диапазона.
Помогите.
Код
Private Sub CommandButton1_Click()
    Dim FileN$, wb As Workbook
    FileN = ThisWorkbook.Path & "\" & "Test_" & Range("B1") & ".xlsm"
    ThisWorkbook.SaveCopyAs FileN
    Set wb = Workbooks.Open(FileN)
    ActiveSheet.DrawingObjects.Delete    'óäàëåíèå âñåõ êíîïîê
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
    ActiveSheet.Copy
    wb.Close SaveChanges:=False
    Kill FileN
    Mid(FileN, Len(FileN), 1) = "x"
    ActiveWorkbook.SaveAs FileN, 51
    ActiveWorkbook.Close SaveChanges:=False
    MsgBox "Òåêóùèé ëèñò ñîõðàíåí â íîâîé êíèãå" & FileN
End Sub 
Страницы: 1
Наверх