আমার আইএফএনএ (বা আইএসএনএ) ভিবিএ মডিউলে কেন কাজ করছে না?


0

আমার কাছে নিম্নলিখিত কোড রয়েছে:

Sub TestNA2()
IsThisNA = Sheets("sheet1").Range("D:D").Select
'Sheets("sheet1").Range("E:E").Select
Range("E2").Formula = "=IF(ISNA(D1),""Delete"","""")"
Range("E2").AutoFill Destination:=Range("E:E"), Type:=xlFillDefault
'ActiveCell.Value = "=IF(ISNA(D:D), ""Delete"","""")"
'ActiveCell.Value = IsThisNA
'MsgBox IsNA
End Sub

তবে এটি এই লাইনে ত্রুটিযুক্ত: অ্যাক্টিভসেল.ভ্যালু = ifNa (ডি 6, "মুছুন")

আমি যা হতে চাই তা হ'ল ডি 6 # এনএনএ থাকলে E6 ঘরে "মুছুন" শব্দটি রাখা।

এই কোডটি দিয়ে কেউ আমাকে সাহায্য করতে পারে?

উত্তর:


1

ত্রুটিটি এই সারিতে রয়েছে:

ActiveCell.Value = IfNa(D6, "Delete")

পরিবর্তে ব্যবহার করুন:

Set IsThisNA = Sheets("items-1").Range("D6")
If Application.WorksheetFunction.IsNA(IsThisNA.Value) Then 
  ActiveCell.Value = "Delete"
End If

বা, আরও সংক্ষিপ্তভাবে:

If Application.WorksheetFunction.IsNA(Sheets("items-1").Range("D6").Value) Then 
  ActiveCell.Value = "Delete"
End If

আপনি যা লিখেছেন তা চেষ্টা করেছিলাম তবে এই ত্রুটিটি আইএফের বিবৃতিতে
পেয়েছি

আপনি যদি চেষ্টা করেছেন?
ডুডে

1

আপনার সূত্রের বাইরে স্ট্রিং তৈরি করা উচিত। তোমার আছে:

ActiveCell.Value = IfNa(D6, "Delete")

তবে এটি হওয়া উচিত:

ActiveCell.Formula = "=IF(ISNA(D6), ""Delete"","""")"

মনে রাখবেন যে আমি দ্বিতীয় পরামিতিটি IFখালি স্ট্রিং হিসাবে যুক্ত করেছি, তবে আপনি এটি পরিবর্তন করতে পারেন।

দ্রষ্টব্য: আপনি IFNAএক্সেল 2011 এর পরিবর্তে ব্যবহার করতে পারেন IF(ISNA(..),..)

সম্পাদনা করুন: এই উত্তরের ভিত্তিতে আপনি এটি পুরো কলামের জন্য প্রসারিত করতে পারেন:

Range("E1").Formula = "=IF(ISNA(D1),""Delete"","""")"
Range("E1").AutoFill Destination:=Range("E:E"), Type:=xlFillDefault

এছাড়াও আপনি একটি নির্দিষ্ট পরিসীমা, উদাহরণস্বরূপ লাগাতে পারেন E1:E6, যেমন নির্দেশিত এখানে

2 সম্পাদনা করুন: আপনি যদি পুরো কলামটির জন্য এটি পূরণ করতে চান তবে আপনার সূত্রটি 1 সারি (উদাহরণস্বরূপ E1) এ রাখা উচিত এবং পুরো কলামে অটো পূরণ করা উচিত (উদাঃ E:E)। আপনি যদি কম সারি চান তবে আপনার স্বতঃপূর্ণ গন্তব্যটিতে এটি সূচিত করতে হবে, উদাহরণস্বরূপ:

Range("E2").Formula = "=IF(ISNA(D6),""Delete"","""")"
Range("E2").AutoFill Destination:=Range("E2:E10"), Type:=xlFillDefault

সুতরাং স্বতঃপূর্ণকরণের পরিসীমা সূত্রের একই স্থানে শুরু হচ্ছে ( E2এই উদাহরণে)।


আমি কীভাবে এই কলামটিতে এই কাজটি করতে পারি, যেমন: (কাজ করছে না) codeসাব টেস্টএনএ () ইসটিসএনএ = শীটস ("শীট 1")। রেঞ্জ ("ডি: ডি")। শীটগুলি নির্বাচন করুন ("শীট 1")। রেঞ্জ (" E: E ")। অ্যাক্টিভেল নির্বাচন করুন.ভ্যালু =" = আইএফ (আইএসএনএ (ডি: ডি), "" মুছুন "", "" "") "'অ্যাক্টিভেল.ভ্যালু = ইসটিসনা' এমএসজিবক্স ইসএনএএন সাব সাবcode
ড্যানএম

সুতরাং এটি শেষ পরিসরে ব্যর্থ হয়: ব্যাপ্তি ("E2")। অটোফিল গন্তব্য: = ব্যাপ্তি ("E: E"), প্রকার: = xlFillDefault, নতুন কোড ব্লকের জন্য আসল পোস্টটি দেখুন
ড্যানএম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.