Разделение общего кода на отдельный суб ...
Private Sub Copy_Jobs()
'either like this...
CopyAndFormat Worksheets("Sales").Range("Week1"), _
Worksheets("Tasks").Range("Job1")
CopyAndFormat Worksheets("Sales").Range("Week2"), _
Worksheets("Tasks").Range("Job2")
'...or in a loop
Dim i As Long
For i = 1 to 5
CopyAndFormat Worksheets("Sales").Range("Week" & i), _
Worksheets("Tasks").Range("Job" & i)
Next i
End Sub
Sub CopyAndFormat(w as Range, j As Range)
w(1).Cells.Value = j(1).Cells.Value
w(2).Cells.Value = j(2).Cells.Value
w(3).Cells.Value = j(3).Cells.Value
w(4).Cells.Value = j(5).Cells.Value
w.Font.Color = j.Font.Color
w.Interior.Color = j.Interior.Color
End Sub
Обратите внимание, что копирование шрифта и цветов интерьера действительно работает только в том случае, если диапазоны отформатированы согласованно.
Так как большинство CLIs является действительно только терминалами (довольно немые главным образом, но иногда с цветом), единственный межплатформенный способ, которым я когда-либо делал, это путем выделения muliple физических линий на виртуальную строку, таких как:
2
f(x) = x + log x
2
Это не идеально, но, вероятно, лучше, чтобы Вы собрались добраться без GUI.
Следующий за Вами дополнительная информация относительно того, какими платформами Вы главным образом интересуетесь:
С Ubuntu, по крайней мере, терминал гнома работает в режиме UTF-8 по умолчанию так следующие шоу кода, как генерировать верхние индексы и нижние индексы:
#include <stdio.h>
static char *super[] = {"\xe2\x81\xb0", "\xc2\xb9", "\xc2\xb2",
"\xc2\xb3", "\xe2\x81\xb4", "\xe2\x81\xb5", "\xe2\x81\xb6",
"\xe2\x81\xb7", "\xe2\x81\xb8", "\xe2\x81\xb9"};
static char *sub[] = {"\xe2\x82\x80", "\xe2\x82\x81", "\xe2\x82\x82",
"\xe2\x82\x83", "\xe2\x82\x84", "\xe2\x82\x85", "\xe2\x82\x86",
"\xe2\x82\x87", "\xe2\x82\x88", "\xe2\x82\x89"};
int main(void) {
int i;
printf ("f(x) = x%s + log%sx\n",super[2],sub[2]);
for (i = 0; i < 10; i++) {
printf ("x%s x%s ", super[i], sub[i]);
}
printf ("y%s%s%s z%s%s\n", super[9], super[9], super[9], sub[7], sub[5]);
return 0;
}
super
и sub
символ* массивы являются кодировками UTF-8 для кодовых точек Unicode для числовых верхних индексов и нижних индексов (см. здесь). Данная программа произведет мою формулу сверху (на одной строке вместо три), затем другая тестовая строка для всего выбора и y-super-999 и z-sub-75, таким образом, Вы видите то, на что они похожи.
MacOS, кажется, не использует терминал гнома в качестве терминальной программы, но ссылок здесь и здесь, кажется, не указывает, что стандартный терминал понимает UTF-8 (или Вы могли загрузить и установить терминал гнома как последнее прибежище).
Я должен был бы распечатать нижние индексы и верхние индексы на CLI, есть ли межплатформенный способ сделать это?
Только если у Вас есть способный к Unicode терминал, который совсем не гарантирован. Unicode определяет ограниченное количество под - и верхний индекс ‘символы совместимости’, Вы, конечно, не можете использовать его ни на какой старой букве:
₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓ
⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿⁱ
Даже затем Вы уверены в том, чтобы там быть глифом для него в шрифте консоли, который также совсем не гарантирован. Верхний индекс 2 и 3, вероятно, будет существовать, поскольку они присутствуют в ISO-8859-1; другие не могут работать.