"ব্যবহারকারীর 25১676725২ problem" এর উত্তর সম্পর্কিত সম্ভাব্য সমস্যা:
উইন্ডোজ ৮.১-এ থাকি এবং "ব্যবহারকারীর accepted১672525২25" এর গৃহীত উত্তর থেকে লিঙ্কযুক্ত ভিবিএ কোডটিতে একটি সমস্যা রয়েছে বলে মনে হচ্ছে:
Sub CopyCellContents()
' !!! IMPORTANT !!!:
' CREATE A REFERENCE IN THE VBE TO "Microsft Forms 2.0 Library" OR "Microsft Forms 2.0 Object Library"
' DO THIS BY (IN VBA EDITOR) CLICKING TOOLS -> REFERENCES & THEN TICKING "Microsoft Forms 2.0 Library" OR "Microsft Forms 2.0 Object Library"
Dim objData As New DataObject
Dim strTemp As String
strTemp = ActiveCell.Value
objData.SetText (strTemp)
objData.PutInClipboard
End Sub
বিশদ:
এক্সেলের একটি ঘরে কোনও কোডের উপরে কোডিং এবং ক্লিপবোর্ড পেস্ট করে আমি ভিতরে একটি প্রশ্ন চিহ্ন সহ স্কোয়ার সমন্বয়ে দুটি চিহ্ন পেতে পারি: like ⍰⍰ নোটপ্যাডে আটকানো এমনকি কিছু দেখায় না।
সমাধান:
বেশ কিছুক্ষণ অনুসন্ধানের পরে আমি "নেপুমুক" ব্যবহারকারীর অন্য একটি ভিবিএ স্ক্রিপ্ট পেয়েছি যা উইন্ডোজ এপিআই ব্যবহার করে । এখানে তার কোড যা শেষ পর্যন্ত আমার পক্ষে কাজ করেছে:
Option Explicit
Private Declare Function OpenClipboard Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Private Declare Function CloseClipboard Lib "user32.dll" () As Long
Private Declare Function EmptyClipboard Lib "user32.dll" () As Long
Private Declare Function SetClipboardData Lib "user32.dll" ( _
ByVal wFormat As Long, _
ByVal hMem As Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32.dll" ( _
ByVal wFlags As Long, _
ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32.dll" ( _
ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32.dll" ( _
ByVal hMem As Long) As Long
Private Declare Function GlobalFree Lib "kernel32.dll" ( _
ByVal hMem As Long) As Long
Private Declare Function lstrcpy Lib "kernel32.dll" ( _
ByVal lpStr1 As Any, _
ByVal lpStr2 As Any) As Long
Private Const CF_TEXT As Long = 1&
Private Const GMEM_MOVEABLE As Long = 2
Public Sub Beispiel()
Call StringToClipboard("Hallo ...")
End Sub
Private Sub StringToClipboard(strText As String)
Dim lngIdentifier As Long, lngPointer As Long
lngIdentifier = GlobalAlloc(GMEM_MOVEABLE, Len(strText) + 1)
lngPointer = GlobalLock(lngIdentifier)
Call lstrcpy(ByVal lngPointer, strText)
Call GlobalUnlock(lngIdentifier)
Call OpenClipboard(0&)
Call EmptyClipboard
Call SetClipboardData(CF_TEXT, lngIdentifier)
Call CloseClipboard
Call GlobalFree(lngIdentifier)
End Sub
এটি উপরের প্রথম ভিবিএ কোডের মতো একইভাবে ব্যবহার করতে, সাব "বিসপিল ()" থেকে পরিবর্তন করুন:
Public Sub Beispiel()
Call StringToClipboard("Hallo ...")
End Sub
প্রতি:
Sub CopyCellContents()
Call StringToClipboard(ActiveCell.Value)
End Sub
এবং এটিকে এক্সেল ম্যাক্রো মেনুতে চালিত করুন যেমন স্বীকৃত উত্তর থেকে "ইউজার ৩6167672525৫" এর পরামর্শ দেওয়া হয়েছে:
এক্সেলের পিছনে ফিরে যান, সরঞ্জামগুলি> ম্যাক্রো> ম্যাক্রোগুলি যান এবং "কপিপেলকন্টেন্টস" নামক ম্যাক্রোটি নির্বাচন করুন এবং তারপরে ডায়ালগ থেকে বিকল্পগুলি চয়ন করুন। এখানে আপনি একটি শর্টকাট কীতে ম্যাক্রোকে বরাদ্দ করতে পারেন (যেমন সাধারণ কপির জন্য Ctrl + c এর মতো) - আমি Ctrl + q ব্যবহার করি।
তারপরে, আপনি যখন নোটপ্যাডে / যেখানেই একটি একক সেল অনুলিপি করতে চান, কেবলমাত্র Ctrl + q (বা আপনি যা পছন্দ করেছেন) করুন এবং তারপরে আপনার নির্বাচিত গন্তব্যস্থলে একটি Ctrl + v বা সম্পাদনা> আটকান।
সম্পাদনা (২০১৫ সালের নভেম্বর ২১):
@ "ডটেক্টর" থেকে মন্তব্য:
না, এটি গুরুত্বের সাথে কোনও নতুন প্রশ্ন নয়! আমার মতে এটি গৃহীত উত্তরের জন্য একটি উত্তম সংযোজন কারণ আমার উত্তরটি এমন সমস্যার সমাধান করে যা আপনি গ্রহণযোগ্য উত্তর থেকে কোডটি ব্যবহার করার সময় সম্মুখীন হতে পারেন। আমার আরও খ্যাতি থাকলে আমি একটা মন্তব্য তৈরি করে দিতাম।
@ "টিপিম" থেকে মন্তব্য:
হ্যাঁ, আপনি ঠিক বলেছেন, "সমস্যা:" শিরোনাম দিয়ে শুরু হওয়া উত্তরগুলি বিভ্রান্তিকর। এতে পরিবর্তিত হয়েছে: "" ব্যবহারকারীর answer১ from672525৫ "এর উত্তর সম্পর্কিত সম্ভাব্য সমস্যা:"। একটি মন্তব্য হিসাবে আমি অবশ্যই আরও অনেক কমপ্যাক্ট লিখতে হবে।