خواندن اطلاعات از فایل دیگر

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • Masih60

    • 2015/11/24
    • 37
    • 40.00

    [حل شده] خواندن اطلاعات از فایل دیگر

    سلام خدمت همه دوستان،

    من کد زیر رو در VB ایجاد کردم تا اطلاعاتم رو از یک فایل دیگه فراخوانی و در فایل فعلیم وارد کنه:
    کد PHP:
    Sub test()
    Dim objworkbook As Workbook
    Dim i 
    As Integer
    Set objworkbook 
    Workbooks.Open("d:\1.xlsx")
    For 
    1 To 3
    Sheets
    (1).Cells(i1) = objworkbook.Worksheets("Sheet1").Cells(i2)
    Next
    objworkbook
    .Close
    End Sub 
    دو تا مشکل دارم باهاش:

    1- بجای اینکه اطلاعات در فایل فعلیم وارد بشه در فایل Source وارد میشه.
    2- امکانش نیست که فایل Source بدون باز شدن، اطلاعاتش خوانده بشه؟

    ممنون میشم پاسخ بدید.
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    #2
    سلام دوست عزيز
    از اين كد كمك بگيريد ببينين رو سيستم شما جواب ميده يا نه

    کد:
    strPath = "D:\"
    strFile = "1.xlsx"
    strSheet = "Sheet1"
    for i=1 to 3
        strRng = Range("A" & i).Address(1, 1, xlR1C1)
        strRef = "'" & strPath & "[" & strFile & "]" & strSheet & "'!" & strRng
        Sheets(1).Cells(i, 1) = ExecuteExcel4Macro(strRef)
    next i

    کامنت

    • Masih60

      • 2015/11/24
      • 37
      • 40.00

      #3
      نوشته اصلی توسط Amir Ghasemiyan
      سلام دوست عزيز
      از اين كد كمك بگيريد ببينين رو سيستم شما جواب ميده يا نه

      کد:
      strPath = "D:\"
      strFile = "1.xlsx"
      strSheet = "Sheet1"
      for i=1 to 3
          strRng = Range("A" & i).Address(1, 1, xlR1C1)
          strRef = "'" & strPath & "[" & strFile & "]" & strSheet & "'!" & strRng
          Sheets(1).Cells(i, 1) = ExecuteExcel4Macro(strRef)
      next i

      جوابها رو 0 برمیگردوند. لطف میکنید کارکرد ExecuteExcel4Macro و Address(1,1,x1R1C1) رو یه توضیح مختصری بدید؟
      Last edited by Masih60; 2018/06/03, 11:55.

      کامنت

      • Masih60

        • 2015/11/24
        • 37
        • 40.00

        #4
        من برای اینکه برنامه رو چک کنم این دو خط رو اضافه کردم:

        کد PHP:
            Sheets(1).Cells(i2) = strrng
        Sheets
        (1).Cells(i3) = strref 
        R1C1 D:\[1.xlsx]Sheet1'!R1C1
        R2C1 D:\[1.xlsx]Sheet1'!R2C1
        R3C1 D:\[1.xlsx]Sheet1'!R3C1
        جواب به شکل بالا بود!!

        کامنت

        • Masih60

          • 2015/11/24
          • 37
          • 40.00

          #5
          مشکل رو پیدا کردم. اطلاعات در فایل Source در ستون B بود نه ستون A که با تغییرش اطلاعات رو با موفقیت دریافت کرد. فقط همچنان برام عمکلرد ExecuteExcel4Macro و Address(1,1,x1R1C1) جای سوال هست. لطفاً هرکس آشنایی داره یه توضیح مختصری در موردشون بده. ممنون.

          کامنت

          • Amir Ghasemiyan

            • 2013/09/20
            • 4598
            • 100.00

            #6
            نوشته اصلی توسط Masih60
            مشکل رو پیدا کردم. اطلاعات در فایل Source در ستون B بود نه ستون A که با تغییرش اطلاعات رو با موفقیت دریافت کرد. فقط همچنان برام عمکلرد ExecuteExcel4Macro و Address(1,1,x1R1C1) جای سوال هست. لطفاً هرکس آشنایی داره یه توضیح مختصری در موردشون بده. ممنون.

            یکسری فانکشن ها و امکانات در ماکرو ۴ و قبل اون وجود داشت که بنا به دلایلی از ماکروی ۵ به بعد حذف شد. اما برای اینکه این قابلیت ها از بین نره تابعی تعریف کردن که بتونه اون ماکروها رو هم اجرا کنه. قابلیت های جالبی هم هستن که اینجا مجال توضیح دادنش نیست. تابع ExecuteExcel4Macro برای همین منظور تعریف شده
            و اما Address(1,1,x1R1C1):
            کارش اینه که آدرس اون محدوده رو برمیگردونه. چون ما تو این سوال به آدرس محدوده نیاز داشتیم نه مقدارش. برای همین با کمک این متد آدرس محدوده رو فراخوانی کردیم. همونطور که خودتون هم دیدید آدرس رو بصورت R1C1 و مطلق برمیگردونه. که البته توضیح آدرس دهی R1C1 هم در این جا مجالش نیست اما اگر به کانال تلگراممون سر بزنید یک جلسه کامل در این خصوص توضیح داده شده

            کامنت

            چند لحظه..