فریدون حیدری
فریدون حیدری

1 سال پیش

پاسخ

درج یک مقدار در یک موقعیت خاص

سلام

یه فرم دارم توی این فرم 3 تا داده وارد میکنم مثلا (8 ، 4 ، "نام کتاب")

با چه تابعی میشه مثلا در سطر 8 و ستون 4 از یک شیت دیگه عبارت "نام کتاب" رو درج کرد ؟

گزارش تخلف

سؤالات مربوط به اکسل

برو به

به پشتیبانی نیاز داری؟

در صورتی که

  • در کار با بتازون مشکلی دارید
  • در مورد خدمات بتازون سؤالی دارید
  • نظراتی را برای ارتقا و بهبود خدمات دارید

خوشحال میشیم که حتماً با ما در میان بزارید

علی امینی
علی امینی

1 سال پیش

سلام

برای اکسل های 2019 به پایین روش VBA هست که من بلد نیستم.

ولی برای اکسل 2021 و 365 از روش آرایه ای استفاده کردم امیدوارم به دردتون بخوره

اول در شیت مرجع که sheet1 هست سلول A2 حتما اون اسمی که قراره بیاد رو بنویسید مثلا "نام کتاب" بعد در سلول ‌‌B2 شماره سطر و در C2 شماره ستون

بعد در سلول A1 شیت هدف این فرمول را paste کنید:

=IF(ISNUMBER(--SUBSTITUTE(SEQUENCE(Sheet1!$B$2,Sheet1!$C$2),MAX(SEQUENCE(Sheet1!$B$2,Sheet1!$C$2)),Sheet1!$A$2)),"",SUBSTITUTE(SEQUENCE(Sheet1!$B$2,Sheet1!$C$2),MAX(SEQUENCE(Sheet1!$B$2,Sheet1!$C$2)),Sheet1!$A$2))

نباید در اون مستطیلی که آرایه توش قرار میگیره هیچ داده ای باشه. وگرنه خطای اسپیل میگیرید.

سوالی داشتید در خدمتم

اگه اکسل 2021 ندارید پیشنهاد میکنم حتما نصب کنید. ویندوز 10 میخواد.

گزارش تخلف

علی امینی
علی امینی

1 سال پیش

به کمک هوش مصنوعی یک کد VBA نوشتم و بعد از debug و شخصی سازی و تست براتون دارم میفرستم.

اولا اگه تب Developer رو ندارید به تب files و قسمت options برید و گزینه customize ribbon رو انتخاب کنید. حالا در منوی سمت راست گزینه Developer را فعال کنید. حالا OK را بزنید. میبینید که این تب اضافه شده. Alt+L+V رو بزنید. یک پنجره باز میشه. بعد صفحه اکسل را کوچک کنید و صفحه visul basic رو هم کوچک کنید به طوری که نصف صفحه مانیتور اکسل باشه و نصفش visul basic . حالا برید روی اکسل و Alt+L+R را فشار بدین. یک بخش ایجاد میشه به نام record macro. حالا OK رو بزنید.

توی صفحه visul basic که نگاه کنید؛ یک قسمت modules دارید و زیر شاخه داره به نام module1 خب روی این بزنید و میبینید صفحه کد نویسی باز شده.

هر چی نوشته رو انتخاب کنید و پاک کنید و این کد که من نوشتم را paste کنید:

Sub CopyToNewSheet()
    Dim bookName As String
    Dim rowNumber As Integer
    Dim columnNumber As Integer
    Dim newSheet As Worksheet
    
    ' Get the values from cells A2, B2, and C2
    bookName = Range("A2").Value
    rowNumber = Range("B2").Value
    columnNumber = Range("C2").Value
    
    ' Add a new worksheet
    Set newSheet = ThisWorkbook.Worksheets.Add
    
    ' Activate the new worksheet
    newSheet.Activate
    
    ' Copy the book name to the specified row and column
    newSheet.Cells(rowNumber, columnNumber).Value = bookName
    
    ' Go back to the original worksheet
    Sheets("Sheet1").Select
    ' Clear cells A2, B2, and C2
    Range("A2:C2").ClearContents
    
    ' move original worksheet before all sheets
    Sheets("Sheet1").Move Before:=Sheets(1)
End Sub

حالا برید توی Sheet1 اکسل و در سلول A2 اون اسمی که قرار هست داخل شیت جدید بیاد رو بنویسید. در سلول B2 اون شماره سطر رو بنویسید و در سلول C2 شماره ستون. حالا از تب insert و بخش shapes یک شکل انتخاب کنید که میخوایم کلید ماکرو باشه و با کلیک روی اون عملیات انجام بشه. بعد از ایجاد شکل؛ کلیک راست کنید و گزینه assign macro رو بزنید. ماکرو که ساختیم یعنی CopyToNewSheet را انتخاب کنید و OK کنید. حالا یک جای دیگه رو select کنید تا شکل از حالت انتخاب در بیاد. بعد از این بخش وقتی روی شکل کلیک کنید اول یک شیت جدید ساخته میشه. بعد در سطر و ستون مورد نظر اون کلمه که در سلول A2 نوشتین جاگذاری میشه و به شیت مرجع برمیگرده و اطلاعات سلول های A2 و B2 و C2 را پاک میکنه.

بعد که همه مراحل را انجام دادین؛ میرسیم به بحث سیو کردن. وقتی save as انجام میدین و میخواین سیو کنید یک ارور میده. اگه yes بزنید ماکرو که نوشتیم میپره. باید no بزنید. به پسوند فایل دقت کنید. xlsx برای این فایل مناسب نیست چون ما ماکرو واردش کردیم. پس پسوند رو به xlsm تغییر بدید و بعد سیو کنید.

تمام.

گزارش تخلف

برو به

درباره ما

بتازون یک سایت نیست، یک خانواده است. یک محل برای همه ما، محلی که به هم کمک کنیم و با هم پیشرفت کنیم. این که الآن اینجایی اتفاقی نیست، خوشحالیم که بهمون ملحق شدی...