نمایش نتایج: از شماره 1 تا 6 , از مجموع 6

موضوع: فارسی بودن نام فایل در vba

  1. #1


    آخرین بازدید
    2023/09/17
    تاریخ عضویت
    August 2011
    نوشته ها
    37
    امتیاز
    3
    سپاس
    14
    سپاس شده
    3 در 2 پست
    سطح اکسل
    26.00 %

    فارسی بودن نام فایل در vba

    این کد ساده، در یک جدول اکسل، آدرس عکس رو می گیره و اون رو ذخیره میکنه. ضمنا نام فایل رو برای ذخیره از یکی از سلول ها برمیداریم.
    Private Declare Function URLDownloadToFile Lib "urlmon" _
    Alias "URLDownloadToFileA" (ByVal pCaller As Long, _
    ByVal szURL As String, ByVal szFileName As String, _
    ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
    Sub GetPageTitle()
    Dim i As Long, url As String, path As String
    For i = 2 To 444
    DoEvents
    url = Sheet1.Range("m" & i).Value
    path = "D:\site\___1392\____sabtenam\aksha\" & Sheet1.Range("A" & i).Value & "-cart.jpg"
    URLDownloadToFile 0, url, path, 0, 0
    Next
    End Sub
    اما اگر سلولی که نام فایل رو ازش می خواهیم برداریم فارسی باشه، کد عمل نمی کنه.
    برای رفع این مشکل کد زیر رو پیدا کردم که کار می کنه، اما نمیدونم چطوری با کد بالا تلفیقش کنم
    Option Explicit

    #If Win64 Then
    Private Declare PtrSafe Function User32MsgBox Lib "user32" Alias "MessageBoxW" _
    (Optional ByVal hWnd As Long, Optional ByVal Prompt As Long, _
    Optional ByVal Title As Long, Optional ByVal Buttons As Long) As Long

    #Else
    Private Declare Function User32MsgBox Lib "user32" Alias "MessageBoxW" _
    (Optional ByVal hWnd As Long, Optional ByVal Prompt As Long, _
    Optional ByVal Title As Long, Optional ByVal Buttons As Long) As Long

    #End If


    Public Function MessageBoxW(cPrompt As String, _
    Optional cButtons As VbMsgBoxStyle = vbOKOnly, _
    Optional cTitle As String) As Long

    MessageBoxW = User32MsgBox(0, StrPtr(cPrompt), StrPtr(cTitle), cButtons)
    '*****Probably need to convert StrPtr to 32bit long on 64bit - see next line
    'MessageBoxW = User32MsgBox(0, cLng(StrPtr(cPrompt)), CLng(StrPtr(cTitle)), cButtons)

    End Function



    Sub MyMacro()
    Dim txt As String
    txt = Sheets("Sheet1").Cells(1, 1).Value
    MessageBoxW (txt)
    End Sub
    لطفا راهنمایی کنید چطوری با کد اول تلفیقش کنم؟ یا اینکه بگویید چه کنیم تا در کد اول فارسی هم فهمیده شود؟
    با تشکر قبلی
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.

  2.  

  3. #2


    آخرین بازدید
    2022/12/05
    تاریخ عضویت
    October 2011
    محل سکونت
    مشهد
    نوشته ها
    4,374
    امتیاز
    12614
    سپاس
    4,596
    سپاس شده
    11,990 در 3,203 پست
    سطح اکسل
    70.00 %

    درود

    در خصوص استفاده از نام فارسی نبایست مشکلی داشته باشید احتمالا کد نویسی شما اشکال داره اما در اینجور مواقع خود از
    کد PHP:
    FileDialog(msoFileDialogOpen
    استفاده میکنم بجای مسیر دادن




  4. #3


    آخرین بازدید
    2023/09/17
    تاریخ عضویت
    August 2011
    نوشته ها
    37
    امتیاز
    3
    سپاس
    14
    سپاس شده
    3 در 2 پست
    سطح اکسل
    26.00 %

    با اون کد اول 400 فایل در عرض چند ثانیه ذخیره میشه
    وقت فایل دیالوگ باز کردن نمیشه
    بدون استفاده از فایل دیالوگ باید مشکل حل بشه
    اگه تست کنید میبینید که کد دومی مشکل فارسی رو حل میکنه
    اما نمیدونم چطور تو کد اول ازش استفاده کنم

  5. #4


    آخرین بازدید
    2022/12/26
    تاریخ عضویت
    November 2010
    محل سکونت
    کرج
    نوشته ها
    362
    امتیاز
    295
    سپاس
    193
    سپاس شده
    596 در 151 پست
    تعیین سطح نشده است

    MEYTI به Yahoo ارسال پیام
    یا سلام دوست عزیز لطفا کدهاتونو داخل تگ کد بذارید در ضمن اگر نمونه فایلتونو بذارید بهتر جواب میگیرید
    مهدی کریمی


  6. #5


    آخرین بازدید
    2023/09/17
    تاریخ عضویت
    August 2011
    نوشته ها
    37
    امتیاز
    3
    سپاس
    14
    سپاس شده
    3 در 2 پست
    سطح اکسل
    26.00 %

    طبق راهنمایی شما کدها رو داخل تگ کد نوشتم
    امیدوارم دوستان جواب بدهند

    این کد ساده، در یک جدول اکسل، آدرس عکس رو می گیره و اون رو ذخیره میکنه. ضمنا نام فایل رو برای ذخیره از یکی از سلول ها برمیداریم.
    کد:
    Private Declare Function URLDownloadToFile Lib "urlmon" _
    Alias "URLDownloadToFileA" (ByVal pCaller As Long, _
    ByVal szURL As String, ByVal szFileName As String, _
    ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
    Sub GetPageTitle()
    Dim i As Long, url As String, path As String
    For i = 2 To 444
    DoEvents
    url = Sheet1.Range("m" & i).Value
    path = "D:\site\___1392\____sabtenam\aksha\" & Sheet1.Range("A" & i).Value & "-cart.jpg"
    URLDownloadToFile 0, url, path, 0, 0
    Next
    End Sub
    اما اگر سلولی که نام فایل رو ازش می خواهیم برداریم فارسی باشه، کد عمل نمی کنه.
    برای رفع این مشکل کد زیر رو پیدا کردم که کار می کنه، اما نمیدونم چطوری با کد بالا تلفیقش کنم
    کد:
    Option Explicit
    
    
    #If Win64 Then
    Private Declare PtrSafe Function User32MsgBox Lib "user32" Alias "MessageBoxW" _
    (Optional ByVal hWnd As Long, Optional ByVal Prompt As Long, _
    Optional ByVal Title As Long, Optional ByVal Buttons As Long) As Long
    
    
    #Else
    Private Declare Function User32MsgBox Lib "user32" Alias "MessageBoxW" _
    (Optional ByVal hWnd As Long, Optional ByVal Prompt As Long, _
    Optional ByVal Title As Long, Optional ByVal Buttons As Long) As Long
    
    
    #End If
    
    
    
    
    Public Function MessageBoxW(cPrompt As String, _
    Optional cButtons As VbMsgBoxStyle = vbOKOnly, _
    Optional cTitle As String) As Long
    
    
    MessageBoxW = User32MsgBox(0, StrPtr(cPrompt), StrPtr(cTitle), cButtons)
    '*****Probably need to convert StrPtr to 32bit long on 64bit - see next line
    'MessageBoxW = User32MsgBox(0, cLng(StrPtr(cPrompt)), CLng(StrPtr(cTitle)), cButtons)
    
    
    End Function
    
    
    
    
    
    
    Sub MyMacro()
    Dim txt As String
    txt = Sheets("Sheet1").Cells(1, 1).Value
    MessageBoxW (txt)
    End Sub

    لطفا راهنمایی کنید چطوری با کد اول تلفیقش کنم؟ یا اینکه بگویید چه کنیم تا در کد اول فارسی هم فهمیده شود؟
    با تشکر قبلی

  7. #6


    آخرین بازدید
    2023/09/17
    تاریخ عضویت
    August 2011
    نوشته ها
    37
    امتیاز
    3
    سپاس
    14
    سپاس شده
    3 در 2 پست
    سطح اکسل
    26.00 %

    دوستانی که می توانند به سوال فوق پاسخ بدهند
    با تشکر


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

انجمن اكسل ايران , اكسل , اكسس , سوال و جواب اكسل , سوال اكسس , انجمن اكسل ايران , توابع اكسل, آموزش اكسل, آموزش اكسس, VBA, ويژوال بيسيك

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است