Ухаалаг автоматаар доош болон баруун тийш бөглөх

Агуулга

Одоог хүртэл би 10 жилийн өмнөх анхны хээрийн корпорацийн сургалтуудын нэгийг заримдаа инээмсэглэн санаж байна.

Хөл бөмбөгийн талбай шиг асар том олон улсын FMCG компанийн төлөөлөгчийн газрын нээлттэй сансрын оффисыг төсөөлөөд үз дээ. Гоёмсог дизайн, үнэтэй оффисын тоног төхөөрөмж, хувцас код, буланд шуугилдаж буй гадаадууд - энэ бүгд 🙂 Уулзалтын нэг өрөөнд би эдийн засгийн хэлтсийн 2003 гол ажилтанд Excel 15 програмын одоогийн хувилбар дээр хоёр өдрийн ахисан түвшний сургалтыг эхлүүлж байна. , тэдний удирдагчийн хамт. Бид танилцаж, би тэднээс бизнесийн даалгавар, асуудлын талаар асууж, хэд хэдэн ердийн ажлын файлуудыг харуулахыг тэднээс хүсч байна. Тэд SAP-аас буулгах километрийн урт, энэ талаар хийсэн тайлангийн хуудас гэх мэтийг харуулдаг. За, энэ бол танил зүйл юм - би сэдэв, цаг хугацааг оюун ухаанаараа тодорхойлж, үзэгчдэд тохируулдаг. Оролцогчдын нэг нь илтгэлийнхээ хэсгийг үзүүлж, томьёотой нүдийг баруун доод буланд байгаа хар загалмайгаар хэдэн мянган мөрөөр тэвчээртэйгээр доош татаж, төгсгөлийг нь алгасаж байгааг нүднийхээ булангаар би анзаарав. ширээ нисч, буцааж татна гэх мэт. Би тэвчихгүй болохоор хулганаа дэлгэцийн эргэн тойронд эргэлдүүлж байгаад таслан хар загалмай дээр давхар товшиж автоматаар дуусгах тухай тайлбарлав. 

Үзэгчид сэжигтэй нам гүм болж, бүгд над руу хачин харж байгааг би гэнэт ойлгов. Би хаа сайгүй эргэн тойрноо хардаг - бүх зүйл хэвийн, гар, хөл байрандаа, ялаа товчтой байна. Би сүүлийн үгээ оюун ухаандаа ухрааж, ямар нэг аймшигт заалт хайж байна - гэмт хэрэг үйлдсэн зүйл байхгүй бололтой. Үүний дараа бүлгийн дарга чимээгүйхэн босч, миний гарыг барьж, чулуун царайгаар: "Баярлалаа, Николай. Энэ сургалтыг дуусгах боломжтой.

Товчхондоо, тэдний хэн нь ч хар загалмай дээр давхар товших, автомат бөглөх талаар ойлголтгүй байсан. Түүхэнд ямар нэгэн байдлаар ийм энгийн боловч шаардлагатай зүйлийг тэдэнд үзүүлэх хүн байгаагүй нь түүхэнд тохиолдсон юм. Бүхэл бүтэн тэнхим хэдэн мянган мөрийн томъёог гараар татсан юм, хөөрхий. Тэгээд би энд байна. Газрын тосны үзэгдэл. Дараа нь хэлтсийн дарга нь компанийнхаа нэрийг хэнд ч хэлэхгүй байхыг маш их хүссэн 🙂

Хэд хэдэн удаа дараа нь үүнтэй төстэй нөхцөл байдал үүссэн, гэхдээ зөвхөн сонсогчдод л тохиолдсон - одоо ихэнх нь мэдээжийн хэрэг энэ функцийг мэддэг. 

Ухаалаг автоматаар доош болон баруун тийш бөглөхАсуулт өөр байна. Ийм гайхамшигтай шинж чанарыг эзэмшсэн анхны баяр баясгалангийн дараа ихэнх хэрэглэгчид хар загалмай (автоматаар бөглөх тэмдэглэгээ) дээр давхар товшиж томьёог автоматаар хуулах нь эерэг ба сөрөг талуудтай гэдгийг ойлгодог.

  • Хүснэгтийн төгсгөлд хуулах нь үргэлж тохиолддоггүй. Хэрэв хүснэгт нь цул биш, өөрөөр хэлбэл зэргэлдээ баганад хоосон нүднүүд байгаа бол автоматаар бөглөх нь хүснэгтийн төгсгөл хүртэл ажиллах нь үнэн биш юм. Хамгийн ойрын хоосон нүдэн дээр процесс дуусахаас өмнө зогсох магадлалтай. Хэрэв баганын доор ямар нэг зүйл эзлэгдсэн нүднүүд байгаа бол автомат бөглөх нь яг тэдгээр дээр зогсох болно.
  • Хуулбарлах үед эсийн дизайн мууддаг, учир нь анхдагчаар зөвхөн томьёог хуулахаас гадна форматыг хуулдаг. Залруулахын тулд хуулбарлах сонголтууд товчийг дараад сонгоно уу Зөвхөн үнэт зүйлс (Форматгүйгээр бөглөх).
  • Томъёог хялбархан сунгах хурдан арга байхгүй доош биш харин баруун тийшгараар татахаас бусад тохиолдолд. Хар загалмай дээр давхар товшвол зүгээр л доошилно.

Эдгээр дутагдлыг энгийн макро ашиглан засахыг хичээцгээе.

Гарын товчлолыг зүүн товчийг дар Alt + F11 эсвэл товчлуур Visual Basic таб Developer (Хөгжүүлэгч). Цэсээр дамжуулан шинэ хоосон модулийг оруулна уу Оруулах - Модуль мөн эдгээр макроны текстийг тэнд хуулна уу:

Sub SmartFillDown() Dim rng As Range, n As Long Set rng = ActiveCell.Offset(0, -1).CurrentRegion Хэрэв rng.Cells.Count > 1 Дараа нь n = rng.Cells(1).Row + rng.Rows. Count - ActiveCell.Row ActiveCell.AutoFill Destination:=ActiveCell.Resize(n, 1), Type:=xlFillValues ​​Төгсгөл Дэд дэд SmartFillRight() Dim rng-г муж, n-ийн уртаар тохируулна rng = ActiveCell.Offset(-1,,) 0).CurrentRegion Хэрэв rng.Cells.Count > 1 Дараа нь n = rng.Cells(1).Column + rng.Columns.Count - ActiveCell.Column ActiveCell.AutoFill Destination:=ActiveCell.Resize(1, n), Төрөл: =xlFillValues ​​End If End Sub  

Ийм макро:

  • зөвхөн доош (SmartFillDown) төдийгүй баруун тийш (SmartFillRight) дүүргэх боломжтой.
  • Доор эсвэл баруун талд байгаа нүднүүдийн форматыг бүү эвдээрэй - зөвхөн томьёо (утга) хуулж авна
  • хоосон зэргэлдээх нүднүүдийг үл тоомсорлож, хуулах нь өгөгдлийн хамгийн ойр зай эсвэл эхний эзлэгдсэн нүд рүү биш харин хүснэгтийн яг төгсгөлд явагдана.

Илүү хялбар болгохын тулд та товчлуурыг ашиглан эдгээр макронд гарын товчлолыг оноож болно Макрос - Сонголтууд (Макро - Сонголтууд) яг тэнд таб дээр. Developer (Хөгжүүлэгч). Одоо баганын эхний нүдэнд хүссэн томьёо эсвэл утгыг оруулахад хангалттай бөгөөд макроны заасан товчлуурын хослолыг дарж бүх баганыг (эсвэл мөрийг) автоматаар дүүргэх болно:

Гоо сайхан.

PS Томьёог хүснэгтийн төгсгөлд хуулахтай холбоотой асуудлын нэг хэсгийг Excel 2007 "ухаалаг хүснэгт" бий болгосноор шийдсэн. Тэд үргэлж, хаа сайгүй тохиромжтой байдаггүй нь үнэн. Баруун талд Excel хэзээ ч өөрөө хуулж сураагүй.

  • Макро гэж юу вэ, тэдгээрийг хэрхэн ашиглах, Visual Basic кодыг хаанаас авах, хаана буулгах вэ.
  • Excel 2007-2013 оны ухаалаг хүснэгтүүд
  • Холбоосыг шилжүүлэхгүйгээр томьёог хуулах

хариу үлдээх