Excel въпрос
8 отговора
0 прегледа
Excel въпрос
Как мога да генерирам таблица, в която да се показват само определени колони от друга таблица, които колони не са в същия ред?
Редактирано от razlichna_ на
Re: Excel въпрос
Търся от снощи в google.com.
Предполагам, че не се прави само с филтър...
Предполагам, че не се прави само с филтър...
Re: Excel въпрос
Можете ли да ми кажете как да стане това?
По принцип може да се направи с cut на колони и Delete. Но има ли някакъв начин да се автоматизира процеса като се задават избрани колони и ред?
По принцип може да се направи с cut на колони и Delete. Но има ли някакъв начин да се автоматизира процеса като се задават избрани колони и ред?
Re: Excel въпрос
По принцип се ползава командата "=".Или клетка едикоя си от таблицата е равна на клетка едикояси от другата таблица.Прави се в най горната клетка.След това клетката се хваща за долния десен ъгъл и се провлачва водоравно или надолу(за ред,колона).При това тя присвоява стойностите и адресите на клетките през които преминава.Има и макроси за целта,където се описва операцията.При стартиране на макроса се изпълнават описаните операции.
Но не съм работил с макроси.
Избийте баламите и тарикатите сами ще умрат!
Но не съм работил с макроси.
Избийте баламите и тарикатите сами ще умрат!
Re: Excel въпрос
Ето едно малко макросче , което прави това:
Sub MyCopy()
Dim s(100) As Integer
Dim i As Integer
' тук си описваш последователността на колоните , които искаш да копираш
s(0) = 1
s(1) = 3
s(2) = 5
' ... и така нататък
For i = 0 To колкото_са_колоните
Sheets("име на входящата таблица").Select
Columns(s(i)).Select
Selection.Copy
Sheets("име на изходящата таблица").Select
Columns(i + 1).Select
ActiveSheet.Paste
Next
End Sub
Е , може и по културно да се направи , но въпроса опира до някоя бира
Sub MyCopy()
Dim s(100) As Integer
Dim i As Integer
' тук си описваш последователността на колоните , които искаш да копираш
s(0) = 1
s(1) = 3
s(2) = 5
' ... и така нататък
For i = 0 To колкото_са_колоните
Sheets("име на входящата таблица").Select
Columns(s(i)).Select
Selection.Copy
Sheets("име на изходящата таблица").Select
Columns(i + 1).Select
ActiveSheet.Paste
Next
End Sub
Е , може и по културно да се направи , но въпроса опира до някоя бира
Редактирано от Tsveten на
Re: Excel въпрос
О, не, направо ме засрами.А аз си мислех, че разбирам нещо от Excel :)
Re: Excel въпрос
Въведох макроса, но като дам run ми излиза това съобщение:
Run-time error "9":
Subscript out of range
Може би не правя нещо както трябва.
Нали в твоя пример
- първата колонка от новата таблица отговаря на първата от старата;
- втората на третата
и третата на петата?
А тука For i = 0 To колкото_са_колоните - трябва да напиша брой колонки в новата или в старата таблица?
Run-time error "9":
Subscript out of range
Може би не правя нещо както трябва.
Нали в твоя пример
- първата колонка от новата таблица отговаря на първата от старата;
- втората на третата
и третата на петата?
А тука For i = 0 To колкото_са_колоните - трябва да напиша брой колонки в новата или в старата таблица?
Редактирано от razlichna_ на
Re: Excel въпрос
Точно така е . В цикъла трябва да се въведе броя колони на новата таблица минус 1 , тъй като първият индекс на масива е нула . Малко подвеждащо съм го написал , за което се извинявам.