Amatorsko łączę makro / VBA w Excelu. Polega na skopiowaniu obrazu, który jest legendą w innym języku, z Source.xlsx, i wklejeniu go do Destination.xlsx. Obraz jest taki, że nie jest już Obiektem na Mapie.
Poniższy kod działa. Jednak teraz próbuję wyrównać nowy obraz, aby zastąpił stary xlamLegendGroup w pliku Destination.xlsx. Obecnie wklejam go do pobliskiej komórki („AO6”) i ręcznie go przenoszę.
Mój problem polega na tym, że nie mogę wybrać obrazu, gdy jest on w pliku Destination.xlsx. Gdybym mógł, jestem pewien, że mógłbym wypracować sposób włączenia tych wartości X i Y do mojego VBA ..
Próbowałem nazwać go za pomocą menedżera nazw, ale mój kod go nie rozpoznaje. Próbowałem nawet nazwać go w VBA podczas selekcji, ale po prostu dostaję błędy i niepoprawne metody itp. (Tak jak powiedziałem, amatorskie rozumienie VBA)
Jeśli ktoś z was mógłby mi pomóc w rozwiązaniu problemu nazewnictwa, a następnie ponownym wyborze problemu, byłby bardzo wdzięczny.
Kopiuje obraz ze skoroszytu soure. To jedyny obraz na arkuszu, więc mogę go wybrać w ten sposób
Workbooks("MyWkbSource.xlsx").Sheets("LEGEND_AVG").Activate
ActiveSheet.DrawingObjects.Select
Selection.Copy
Aktywuj skoroszyt docelowy i wkleja obraz. W tym miejscu chciałbym go wyrównać (centrując go u góry) z obrazem, który zamierzam usunąć.
Workbooks(MyWkbDestination.xlsx").Sheets("AVG").Activate
ActiveSheet.Range("AO6").Select
ActiveSheet.Paste
Wybieram istniejący stary obraz i usuwam go
ActiveSheet.Shapes.Range(Array("xlamLegendGroup")).Select
Selection.Delete
źródło
Ilekroć kopiujesz pojedynczy Obiekt (powiedzmy Kształt) z jednego arkusza na inny lub jeden skoroszyt do drugiego, możesz odwoływać się do obiektu docelowego, sprawdzając jego miejsce w .Count . Na przykład:
Po zakończeniu kopiowania najnowszy kształt umieszczony w miejscu docelowym pojawi się jako ostatni na liście Kształty tego miejsca docelowego.
źródło
Po prostu nazwij kształt niestandardową nazwą. Unikaj liczb po nazwisku.
Np .: Prostokąt 1 zmień go na> Mój prostokąt
źródło