Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2016, 19:41   #1
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию перепечатать на vba

есть такой код на java, ток я чете не понимаю как его переписать на vba?

Код:
int A[][] = new int [10][10];
		int i, j, k, C;
		
		System.out.print("1/2: ");
		
		Scanner sc = new Scanner((System.in));
		if (sc.hasNextInt())
			k = sc.nextInt();
		else 
                {
			System.out.println("input-output error");
			sc.close();
			return;
		}
		sc.close();
		if (k==1) 
                {
			C = 27;
                            for (j=9; j>=0; j--)
			    for (i=9-j; i>=7-j; i--) 
			         if (i>=0) 
                                 {
			            A[i][j] = C; C=C-1;
			        }
		}
		else if (k==2) 
                {
			for (j=0; j<10; j++)
                        {
                            int sk=10;
                        for( i=j;i<10;i++)
                        {
                            A[i][j] = sk;
                            sk--;//
                        }
                        }
                }
		else 
                {
			System.out.println("input-output error");
			return;
		}
			
		for (i=0; i<10; i++) 
                {
			for (j=0; j<10; j++)
				System.out.print(A[i][j] + "\t");
			System.out.println();
		}
	}
}
range a1:j10
не знаю как сделать...
на первый и второй вариант..
Снимок2.PNG
komra2 вне форума Ответить с цитированием
Старый 25.12.2016, 22:05   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

А зачем? Код рабочий, массивы заполняет.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 25.12.2016, 22:34   #3
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
А зачем? Код рабочий, массивы заполняет.
я это знаю, но как мне получить первую и вторую картинку на vba, этот код у меня на java написан
komra2 вне форума Ответить с цитированием
Старый 25.12.2016, 22:40   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

так в чем проблема? Вы синтаксис vba не знаете, или код не совсем Ваш и проблема с пониманием логики алгоритма?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 25.12.2016, 22:42   #5
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
так в чем проблема? Вы синтаксис vba не знаете, или код не совсем Ваш и проблема с пониманием логики алгоритма?
проблема в не знании синтаксиса vba, код от части мой! Я не знаю как он будет выглядить на vba
ток эту часть надо
Код:
if (k==1) 
                {
			C = 27;
                            for (j=9; j>=0; j--)
			    for (i=9-j; i>=7-j; i--) 
			         if (i>=0) 
                                 {
			            A[i][j] = C; C=C-1;
			        }
		}
komra2 вне форума Ответить с цитированием
Старый 25.12.2016, 23:15   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

мой вариант
Код:
Sub g()
    Dim k As Byte
    Dim i, j, c
    On Error GoTo Er
    Range("A1:J10").Clear
    k = CInt(InputBox("1 or 2?", "1 or 2", 1))
    If k = 1 Then
        c = 1
        For j = 1 To 10
            For i = 10 To 1 Step -1
                Cells(i, j) = 0
                If i - j >= 0 And i - j <= 2 Then
                    Cells(i, j) = c
                    c = c + 1
                End If
            Next i
        Next j
    ElseIf k = 2 Then
        For i = 1 To 10
            For j = 1 To 10
                If j > i Then
                    Cells(i, j) = j - i 
                Else
                    Cells(i, j) = 0
                End If
            Next j
        Next i
    Else
        GoTo Er
    End If
    Exit Sub
Er:
    MsgBox ("input-output error")
End Sub
как ваш фрагмент будет, не знаю не хочу разбираться в алгоритме
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 25.12.2016 в 23:19.
Aleksandr H. вне форума Ответить с цитированием
Старый 25.12.2016, 23:49   #7
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Код:
Sub Ko()
Cells.Clear
With Range("A1:J10")
  Select Case InputBox("1 or 2?", "1 or 2", 1)
  Case "1"
    .Formula = "=IF(AND(ROW()>=COLUMN(),ROW()<COLUMN()+3),4*COLUMN()-ROW(),0)"
  Case "2"
    .Formula = "=MAX(COLUMN()-ROW(),)"
  Case Else
    MsgBox "input-output error"
  End Select
  .Value = .Value 'необязательно
End With
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось Казанский; 25.12.2016 в 23:55.
Казанский вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA: Возможен ли в VBA аналог CTRL-A ("Пометить все") Victor_ Microsoft Office Excel 1 22.02.2015 20:22
VBA и Oracle: stored procedure из VBA и сохранение текста в переменной Lionne Microsoft Office Excel 1 15.04.2013 19:51
Совместимость Excel 2007 VBA - Excel 2010 VBA Genas Microsoft Office Excel 2 28.11.2012 15:33
VBA Word,VBA Excel решить 2 задачи fafolo4ka Фриланс 6 05.03.2012 01:15
VBA Apsalon Microsoft Office Excel 1 22.12.2010 17:09