ঘর থেকে অনুলিপি করার সময় উদ্ধৃতিগুলি ছেড়ে দিন


90

সমস্যা :
প্রোগ্রামের বাইরে এক্সেল থেকে কোনও সেল অনুলিপি করার সময়, ডাবল-কোটগুলি স্বয়ংক্রিয়ভাবে যুক্ত হয়।

বিশদ :
আমি উইন্ডোজ 7 মেশিনে এক্সেল 2007 ব্যবহার করছি। নিম্নলিখিত সূত্র সহ যদি আমার একটি ঘর থাকে:

="1"&CHAR(9)&"SOME NOTES FOR LINE 1."&CHAR(9)&"2"&CHAR(9)&"SOME NOTES FOR LINE 2."

কক্ষের আউটপুট (সংখ্যা হিসাবে ফর্ম্যাট করা) এক্সেলের মতো দেখায়:

1SOME NOTES FOR LINE 1.2SOME NOTES FOR LINE 2.

বেশ এবং ভাল. তবে, আমি যদি নোটপ্যাডের মতো অন্য কোনও প্রোগ্রামে ঘরটি অনুলিপি করি তবে আমি শুরু এবং শেষে বিরক্তিকর ডাবল-কোট পেয়েছি। লক্ষ্য করুন যে "CHAR (9)" দ্বারা নির্মিত ট্যাবগুলি রাখা হয়েছে, যা ভাল।

"1  SOME NOTES FOR LINE 1.  2     SOME NOTES FOR LINE 2."

যখন আমি অন্য প্রোগ্রামে অনুলিপি করি তখন কীভাবে আমি এই ডাবল-কোটগুলি প্রদর্শিত হতে বাধা রাখতে পারি? অন্য কথায়, সেলটি ক্লিপবোর্ডে অনুলিপি করা অবস্থায় আমি কী এগুলি স্বয়ংক্রিয়ভাবে যুক্ত হওয়া থেকে রক্ষা করতে পারি?


আপনি কি বিন্যাসটি সংখ্যা ছাড়া অন্য কিছুতে পরিবর্তন করার চেষ্টা করেছেন? আমি মনে করি যে আমি এর আশেপাশের উপায়গুলি দেখেছি, তবে আমি এই মুহুর্তে এক্সেলটি খুলতে পারি না, এখনও কিছু উত্তর না পেলে কয়েক মিনিটের মধ্যে ফিরে আসব।
আদমমসি 331

@ ম্যাকএডাম 331 আমার সেটআপে, যদি ফর্ম্যাটটি পাঠ্যের মতো কিছু হয় তবে ঘর সূত্রটি বিভক্ত করে, গণনা করা ফলাফলটি নয়। সংখ্যা হিসাবে ফর্ম্যাট করা কোনও কারণে এটিকে ওভাররাইড করে বলে মনে হচ্ছে।
অ্যারন টমাস

আপনি কেন সূত্রটি ব্যবহার করতে বেছে নিলেন? এটি কি কারণ এক্সেল ট্যাব অক্ষরগুলি সন্নিবেশ করার কোনও সহজ উপায় সমর্থন করে না? আমি এটির আশেপাশে কাজ করতে পারে বলে মনে হয় না, সম্ভবত আপনি এক্সেল ব্যতীত অন্য বিকল্পগুলি ব্যবহার করতে পারেন যা আপনি ব্যবহার করতে পারেন তবে প্রকল্পের প্রকৃতি কী তা আমি নিশ্চিত নই।
অ্যাডামএমসি 331

এছাড়াও, এটি কোনও ঝামেলা হতে পারে তবে আপনি যদি এক্সেল খোলেন এবং কোনও ঘরে টাইপ শুরু করেন (যা ডিফল্টরূপে জেনারেল হিসাবে ফর্ম্যাট করা হয়) এবং আপনি পাঠ্য প্রবেশ করেন, এটি উদ্ধৃতি ব্যতীত অনুলিপি করবে। (এক্সেল 2013 এবং নোটপ্যাড ++ ব্যবহার করে পরীক্ষিত) এটি কি কোনও ট্যাবের পরিবর্তে 4 টি স্পেসে প্রবেশ করতে আপনার প্রকল্পকে প্রভাবিত করবে? আবার, বাকি সমস্যাটি না জেনে বলা শক্ত।
আদমমসি 331

4
@ ম্যাকএডাম 331 দুর্ভাগ্যক্রমে আমি এখানে যেমন রেখেছি ঠিক তেমন কাজ করার দরকার, অগ্রণী এবং পিছনে ডাবল উদ্ধৃতি বিয়োগ করা। দয়া করে ট্যাবগুলি এই প্রশ্নের কেন্দ্রবিন্দু থেকে দূরে সরিয়ে দেবেন না - সেগুলি অবশ্যই সেখানে উপস্থিত রয়েছে।
অ্যারন থমাস

উত্তর:


29

আপনি যদি ওয়ার্ড-প্যাড, নোটপ্যাড ++ বা ওয়ার্ডে আটকানোর চেষ্টা করেন তবে আপনার এই সমস্যাটি হবে না। খাঁটি পাঠ্য হিসাবে ঘর মান অনুলিপি করতে, আপনি যা বর্ণনা করেছেন তা অর্জন করতে আপনাকে ম্যাক্রো ব্যবহার করতে হবে:

আপনি যে ওয়ার্কবুকটিতে এটি প্রয়োগ করতে চান (বা আপনি যদি কয়েকটি ওয়ার্কবুক জুড়ে ব্যবহার করতে চান তবে আপনার ব্যক্তিগত.এক্সএলগুলিতে) নীচের কোডটি একটি স্ট্যান্ডার্ড মডিউলে রাখুন:

কোড:

Sub CopyCellContents()
'create a reference in the VBE to Microsft Forms 2.0 Lib
' do this by (in VBA editor) clicking tools - > references and then ticking "Microsoft Forms 2.0 Library"
Dim objData As New DataObject
Dim strTemp As String
strTemp = ActiveCell.Value
objData.SetText (strTemp)
objData.PutInClipboard
End Sub

আপনার প্রকল্পে (ওয়ার্কবুক) একটি স্ট্যান্ডার্ড মডিউল যুক্ত করতে, Alt+ দিয়ে VBE খুলুন F11এবং তারপরে উপরের বাম প্রজেক্ট উইন্ডোতে আপনার ওয়ার্কবুকটিতে ডান ক্লিক করুন এবং সন্নিবেশ> মডিউলটি নির্বাচন করুন। কোডটি মডিউল উইন্ডোতে পেস্ট করুন যা ডানদিকে খুলবে।

এক্সেলে ফিরে যান, সরঞ্জামগুলি> ম্যাক্রো> ম্যাক্রোগুলি যান এবং "কপিপেলকন্টেন্টস" নামক ম্যাক্রোটি নির্বাচন করুন এবং তারপরে ডায়ালগ থেকে বিকল্পগুলি চয়ন করুন। এখানে আপনি একটি শর্টকাট কীতে ম্যাক্রোকে বরাদ্দ করতে পারেন (উদাহরণস্বরূপ CTRL+ Cসাধারণ কপির জন্য + ) - আমি CTRL+ ব্যবহার করেছি usedQ

তারপরে, আপনি যখন নোটপ্যাডে / যেখানেই একটি একক সেল অনুলিপি করতে চান, কেবলমাত্র Ctrl + q (বা আপনি যা পছন্দ করেছেন) করুন এবং তারপরে আপনার নির্বাচিত গন্তব্যটিতে একটি CTRL+ Vবা সম্পাদনা> আটকান।

আমার উত্তরটি অনুলিপি করা হয়েছে (কয়েকটি সংযোজন সহ) থেকে: এখানে

সম্পাদনা : (মন্তব্য থেকে)

যদি আপনি রেফারেন্স তালিকায় মাইক্রোসফ্ট ফর্ম ২.০ লাইব্রেরিটি না পান তবে আপনি চেষ্টা করতে পারেন

  • পরিবর্তে এফএম20.ডিএলএল খুঁজছেন (ধন্যবাদ @ পিটার স্মলউড)
  • ব্রাউজ ক্লিক এবং নির্বাচন C:\Windows\System32\FM20.dll(32 বিট উইন্ডোজ) (ধন্যবাদ @ জে ডাব্লু কেন)
  • ব্রাউজ ক্লিক এবং নির্বাচন C:\Windows\SysWOW64\FM20.dll (64-বিট উপর)

4
দেখে মনে হচ্ছে ভিবিএই এর একমাত্র সমাধান - ইনপুটটির জন্য ধন্যবাদ।
অ্যারন থমাস

4
আপনি যদি মাইক্রোসফ্ট ফর্মগুলির তালিকাটি রেফারেন্সের তালিকায় দেখতে না পান তবে FM20.DLL এর জন্য ব্রাউজ করুন
পিটার স্মলউড

15
আমি নোটপ্যাড ++ এ পেস্ট করলে এখনও উদ্ধৃতিগুলি পাই।
কেট

4
@মোনকিইন্টার্ন আমার মনে হয় আমার কাছে একটি ঘরে একাধিক লাইনের পাঠ্য রয়েছে এবং সেগুলি প্রতি সেলগুলিতে একটি লাইনে বিভক্ত করা আমাকে এটিকে ঘিরে ধরুক।
কাট

4
@ ব্যবহারকারী 61১676125২ Updated আপডেট হওয়া সংস্করণগুলি এই আচরণটি পরিবর্তন করতে পারে তবে ওয়ার্ড এবং নোটপ্যাড ++ এর বর্তমান সংস্করণগুলি (এই মন্তব্যের পোস্টের তারিখ হিসাবে) কোনও একক বা একাধিক ঘর নির্বাচন করার সময় এই উক্তিগুলি আটকে দিন।
টনি

81

আমার কেবল এই সমস্যাটি ছিল এবং CLEANফাংশনটির সাথে প্রতিটি কক্ষ মোড়ানো এটি আমার জন্য স্থির করে। এটি করা =CLEAN(, আপনার ঘর নির্বাচন করে এবং পরে কলামের বাকী অংশটি স্বতঃপূর্ণ করে তুলনামূলকভাবে সহজ হওয়া উচিত । আমি এটি করার পরে, নোটপ্যাড বা অন্য কোনও প্রোগ্রামে আটকানোতে সদৃশ উদ্ধৃতি আর নেই।


20
অতিরিক্ত উদ্ধৃতি মুছে ফেলার জন্য ভাল উত্তর, তবে দুর্ভাগ্যক্রমে এটি ট্যাব অক্ষরগুলিও মুছে ফেলে ... যা প্রশ্নে আমি রাখতে চাই। যদিও ইনপুট জন্য ধন্যবাদ!
অ্যারন থমাস

এটি আমার পক্ষে কাজ করেছে, আমি ট্যাবগুলির বিষয়ে চিন্তা করি নি - আসলে আমি তাদের সমস্তটি চেয়েছিলাম এবং নতুন লাইনের চরিত্রগুলি যাইহোক মুছে ফেলা হয়েছে।
কোডি

19
এটি 32 এর নীচে সমস্ত ASCII অক্ষর সরিয়ে দেয় So তাই নতুন লাইনগুলিও।
নেপলত্নিউডাজ

4
এটিই আসল উত্তর।
টাইলার মারি

10
এটি কোনও বিশেষ সমাধান নয় কারণ এটি সমস্ত বিশেষ অক্ষরকে সরিয়ে দেয়।
পল

26

প্রথমে এটি ওয়ার্ডে আটকান, তারপরে আপনি এটিকে নোটপ্যাডে পেস্ট করতে পারেন এবং এটি উদ্ধৃতিগুলি ছাড়া উপস্থিত হবে


ইনপুট দেওয়ার জন্য ধন্যবাদ, তবে আমি এটি একটি ভাল সমাধান হিসাবে চিহ্নিত করতে পারি না। প্লাস এটি ইতিমধ্যে এই প্রশ্নের প্রস্তাব দেওয়া একটি সমাধানের সদৃশ, stackoverflow.com/a/24913557/2658159 দেখুন
অ্যারন টমাস

4
ধন্যবাদ, আমি এই সমাধানটি পছন্দ করেছি। দ্রুত এবং সহজ
বাজাল

এটিকে প্রাধান্য দেওয়া ... আমার ক্ষেত্রে, আমার সমস্যাটি হ'ল আমি যে বিশেষ ধরণের অনুরোধ পেয়েছি তার জন্য ডেটা একটি এক্সেল ফাইলে আসে এবং আমার এটি একটি সরল পাঠ্য বাক্সে আটকানো দরকার। আমি যখন এটি করি, আমি উদ্ধৃতিগুলি পাই। আমি অতিরিক্ত পাঠ্য মুছে ফেলার জন্য একটি পাঠ্য সম্পাদক ব্যবহার করেছি (এটি উদ্ধৃতিগুলি খুব .. বিরক্তিকর!)। একটি সহজ সমাধানের সন্ধানে, আমি খুঁজে পেয়েছি ওয়ার্ডের সাথে প্রথম অতিরিক্ত কাজগুলি শেষ হওয়ার সাথে সাথে কাজ করে। আশা করি আমি এই 10x
upvote

এটি ট্যাব অক্ষরগুলি সরিয়ে ফেলবে। কমপক্ষে শব্দটি ব্যবহার করার সময়,
ওয়ার্ডপ্যাড

এটি আজও সেরা সমাধান।
zygimantus

6

আপনি যদি একাধিক কক্ষ নির্বাচন করতে চান এবং এই সমস্ত বিরক্তিকর উদ্ধৃতিগুলি না দিয়ে ক্লিপবোর্ডে তাদের মানগুলি অনুলিপি করতে চান তবে নীচের কোডটি কার্যকর হতে পারে। এটি ব্যবহারকারীর থেকে উপরে দেওয়া কোডের একটি বর্ধন 3১6167252525।

Sub CopyCells()
 'Attach Microsoft Forms 2.0 Library: tools\references\Browse\FM20.DLL
 'Then set a keyboard shortcut to the CopyCells Macro (eg Crtl T)
 Dim objData As New DataObject
 Dim cell As Object
 Dim concat As String
 Dim cellValue As String
 CR = ""
  For Each cell In Selection
  If IsNumeric(cell.Value) Then
   cellValue = LTrim(Str(cell.Value))
  Else
   cellValue = cell.Value
  End If
  concat = concat + CR + cellValue
  CR = Chr(13)
 Next
 objData.SetText (concat)
 objData.PutInClipboard
End Sub

আমি মনে করি এটি এখন পর্যন্ত সেরা উত্তর।
posfan12

4
এই উত্তরটির উপর ভিত্তি করে আমার উত্তর দেখুন যা এটির সাথে নিম্নলিখিত বাগগুলি স্থির করে: 1. একটি খালি সেলটিকে একটি খালি স্ট্রিং বনাম "0" তে রূপান্তর করুন। ২. প্রতিটি কক্ষের পরে ট্যাব (এএসসিআইআই 9) বনাম সিআর (এএসসিআইআই 13) যুক্ত করুন। ৩. প্রতিটি সারির পরে একটি সিআর (এএসসিআইআই ১৩) + এলএফ (এএসসিআইআই 10) (বনাম সিআর (এএসসিআইআই ১৩) যুক্ত করুন। দ্রষ্টব্য: আপনি এখনও এমন কোনও কক্ষের মধ্যে এম্বেড থাকা অক্ষরগুলি অনুলিপি করতে পারবেন না যা সেই সেলটিকে আটকানো লক্ষ্য ক্ষেত্রের প্রস্থান হতে পারে (যেমন অ্যাক্সেস বা এসএসএমএসের সারণী উইন্ডোটি সম্পাদনা করার সময় ট্যাব বা সিআর)।
টম

Comp এছাড়াও "পরিবর্তনশীল সংজ্ঞায়িত নয়" সংকলক ত্রুটি ("সিআর" পরিবর্তনশীল জন্য) সংশোধন করে।
টম

4

আমি যখন উদ্ধৃতি ইস্যুতে হিট করেছি তখন আমার সমাধানটি ছিল আমার কোষের পাঠ্যের শেষে থেকে গাড়ীর ফেরত ফেলা। এই ক্যারেজ রিটার্নের কারণে (একটি বাহ্যিক প্রোগ্রাম দ্বারা সন্নিবেশিত), এক্সেল পুরো স্ট্রিংয়ে কোট যোগ করছিল।


4
উদ্ধৃতিগুলি সূত্রের অভ্যন্তরে সিআর / এলএফ-এর ফলাফল (অগত্যা শেষে নয়) বা এই থ্রেডের মূল প্রশ্নের মতো একটি ট্যাব (চর (9)) হতে পারে।
টার্বো

আপনি সত্যিই আমার জীবনকে সহজ করে দিয়েছেন
DE উত্স

3

"ব্যবহারকারীর 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৫ "এর উত্তর সম্পর্কিত সম্ভাব্য সমস্যা:"। একটি মন্তব্য হিসাবে আমি অবশ্যই আরও অনেক কমপ্যাক্ট লিখতে হবে।


আমি মনে করি এটি বৈধ উত্তর হিসাবে কাজ করে (যদিও সমস্যাটি খোলার ফলে এটি মনে হয় আপনার কোনও নতুন সমস্যা হয়েছে)। এবং মন্তব্যগুলি 600 টি অক্ষরে ধারণ করা হয়েছে, সুতরাং এটি অবশ্যই এটির জন্য দীর্ঘ।
তিপিম্ম

অপূর্ব! ধন্যবাদ! একমাত্র সমস্যাটি মনে হচ্ছে এটি কেবলমাত্র একটি একক ঘরের জন্য কাজ করে। কপির রেঞ্জগুলি অনুলিপি করার জন্য কি এটি কোনওভাবে উন্নতি করা যেতে পারে?
নেপলত্নিউডাজ

3

"আপনি যদি একাধিক ঘর নির্বাচন করতে চান এবং সেই সমস্ত বিরক্তিকর উক্তি ব্যতীত ক্লিপবোর্ডে তাদের মানগুলি অনুলিপি করতে চান " ( পিটার স্মলউডের মাল্টি-সেল সমাধানগুলিতে বাগগুলি ছাড়াই ) "নিম্নলিখিত কোডটি কার্যকর হতে পারে" " এটি পিটার স্মলউড (যা "ব্যবহারকারীর উপরে বর্ণিত কোডের বর্ধন 3১676725২" ") এর উপরে বর্ণিত কোডের বর্ধন is পিটার স্মলউডের সমাধানে এটি নিম্নলিখিত বাগগুলি সমাধান করে:

  • "চলক সংজ্ঞায়িত" সংকলক ত্রুটি এড়ানো ("সিআর" - "ক্লাইবোর্ডফিল্ডফিল্ডিমিটার" এখানে) এড়ান
  • একটি খালি সেলটিকে একটি খালি স্ট্রিং বনাম "0" এ রূপান্তর করুন।
  • প্রতিটি কক্ষের পরে ট্যাব (ASCII 9) বনাম সিআর (ASCII 13) যুক্ত করুন।
  • প্রতিটি সারি পরে একটি সিআর (ASCII 13) + এলএফ (ASCII 10) (বনাম CR (ASCII 13)) যুক্ত করুন।

দ্রষ্টব্য: আপনি এখনও এমন কোনও কক্ষের মধ্যে এম্বেড থাকা অক্ষরগুলি অনুলিপি করতে পারবেন না যা সেই সেলটিকে আটকানো লক্ষ্য ক্ষেত্রের প্রস্থান হতে পারে (যেমন অ্যাক্সেস বা এসএসএমএসের সারণী উইন্ডোটি সম্পাদনা করার সময় ট্যাব বা সিআর)।


Option Explicit

Sub CopyCellsWithoutAddingQuotes()

' -- Attach Microsoft Forms 2.0 Library: tools\references\Browse\FM20.DLL
' -- NOTE: You may have to temporarily insert a UserForm into your VBAProject for it to show up.
' -- Then set a Keyboard Shortcut to the "CopyCellsWithoutAddingQuotes" Macro (i.e. Crtl+E)

Dim clibboardFieldDelimiter As String
Dim clibboardLineDelimiter As String
Dim row As Range
Dim cell As Range
Dim cellValueText As String
Dim clipboardText As String
Dim isFirstRow As Boolean
Dim isFirstCellOfRow As Boolean
Dim dataObj As New dataObject

clibboardFieldDelimiter = Chr(9)
clibboardLineDelimiter = Chr(13) + Chr(10)
isFirstRow = True
isFirstCellOfRow = True

For Each row In Selection.Rows

    If Not isFirstRow Then
        clipboardText = clipboardText + clibboardLineDelimiter
    End If

    For Each cell In row.Cells

        If IsEmpty(cell.Value) Then

            cellValueText = ""

        ElseIf IsNumeric(cell.Value) Then

            cellValueText = LTrim(Str(cell.Value))

        Else

            cellValueText = cell.Value

        End If ' -- Else Non-empty Non-numeric

        If isFirstCellOfRow Then

            clipboardText = clipboardText + cellValueText
            isFirstCellOfRow = False

        Else ' -- Not (isFirstCellOfRow)

            clipboardText = clipboardText + clibboardFieldDelimiter + cellValueText

        End If ' -- Else Not (isFirstCellOfRow)

    Next cell

    isFirstRow = False
    isFirstCellOfRow = True

Next row

clipboardText = clipboardText + clibboardLineDelimiter

dataObj.SetText (clipboardText)
dataObj.PutInClipboard

End Sub

0

নোটপ্যাডে পেস্ট করার সময় লাইন বিরতি রাখতে, এই লাইনটি ম্যাক্রোতে প্রতিস্থাপন করুন:

strTemp = ActiveCell.Value

দ্বারা:

strTemp = Replace(ActiveCell.Value, Chr(10), vbCrLf)

0

দয়া করে নীচের সূত্রটি ব্যবহার করুন

=Clean("1"&CHAR(9)&"SOME NOTES FOR LINE 1."&CHAR(9)&"2"&CHAR(9)&"SOME NOTES FOR LINE 2.")

এবং আপনি যা চান তা পাবেন ;-)


4
এটি কৌশলটি কার্যকর করে তবে আমার ফর্ম্যাটিংটি সরিয়ে দেয় (নতুন লাইন এবং ট্যাবগুলি)
গ্যাব্রিয়েল জি

0

ফলাফলটি কোনও ফাইলে প্রেরণ করে আপনি ভিবিএর মাধ্যমে কোনও এক্সেল ম্যাক্রোতে এটি করতে পারেন:

Sub SimpleVBAWriteToFileWithoutQuotes()
    Open "c:\TEMP\Excel\out.txt" For Output As #1
    Print #1, Application.ActiveSheet.Cells(2, 3)
    Close #1
End Sub

এবং যদি আপনি একাধিক ফাইলে ফাইলের নাম এবং সামগ্রী পেতে চান, তবে এখানে একটি সংক্ষিপ্ত স্নিপেট যা আউটপুটটির চারপাশে ডাবল উদ্ধৃতিগুলি এড়িয়ে চলে।

Sub DumpCellDataToTextFilesWithoutDoubleQuotes()
    ' this will work for filename and content in two different columns such as:
    ' filename column       data column
    ' 101                   this is some data
    ' 102                   this is more data

    Dim rngData As Range
    Dim strData As String
    Dim strTempFile As String
    Dim strFilename As String
    Dim i As Long
    Dim intFilenameColumn As Integer
    Dim intDataColumn As Integer
    Dim intStartingRow As Integer

    intFilenameColumn = 1     ' the column number containing the filenames
    intDataColumn = 3         ' the column number containing the data
    intStartingRow = 2        ' the row number to start gathering data


    For i = intStartingRow To Range("A1", Range("A1").End(xlDown)).Rows.Count

        ' copy the data cell's value
        Set rngData = Application.ActiveSheet.Cells(i, intDataColumn)

        ' get the base filename
        strFilename = Application.ActiveSheet.Cells(i, intFilenameColumn)

        ' assemble full filename and path
        strTempFile = "w:\TEMP\Excel\" & strFilename & ".txt"

        ' write to temp file
        Open strTempFile For Output As #1
        Print #1, rngData
        Close #1

    Next i

    ' goto home cell
    Application.ActiveSheet.Cells(1, 1).Select
    Range("A1").ClearOutline
End Sub

0
  • যদি সূত্রে মাল্টি লাইন থাকে (মানে সূত্রটিতে লাইন বিরতি রয়েছে) তবে অনুলিপি পেস্ট সেভাবে কাজ করবে
  • যদি মাল্টি লাইন সরিয়ে ফেলতে পারে তবে কপির পেস্ট করার সময় কোনও উদ্ধৃতি উপস্থিত হবে না।
  • অন্যথায় আগের উত্তরে @ গ্রেগের মতন পরিষ্কার ফাংশন ব্যবহার করুন

0

দ্রষ্টব্য: উদ্ধৃতিগুলির কারণ হ'ল যখন ডেটা এক্সেল থেকে ক্লিপবোর্ডে চলে আসে তখন এটি সিএসভি মানগুলির সাথে সম্পূর্ণরূপে মেনে চলেছে যার মধ্যে ট্যাবগুলি, নতুন লাইনগুলি ইত্যাদি অন্তর্ভুক্তকরণের মানগুলি অন্তর্ভুক্ত থাকে (এবং ডাবল-উদ্ধৃতি অক্ষর দুটি ডাবল-উদ্ধৃতি অক্ষরের সাথে প্রতিস্থাপন করা হয়)

সুতরাং অন্য পদ্ধতির, বিশেষত ওপি-র ক্ষেত্রে যেমন ট্যাবস / নতুন লাইনগুলি সূত্রের কারণে হয়, তা হল ট্যাব এবং হার্ড রিটার্নের জন্য বিকল্প অক্ষর ব্যবহার করা। আমি ট্যাবগুলির জন্য ascii ইউনিট বিভাজক = চর (31) এবং নতুন লাইনের জন্য ascii রেকর্ড বিভাজক = চর (30) ব্যবহার করি।

তারপরে পাঠ্য সম্পাদককে আটকানো অতিরিক্ত সিএসভি বিধিগুলিকে জড়িত করবে না এবং আপনি দ্রুত অনুসন্ধান করতে পারেন এবং এগুলিকে আবার রূপান্তর করতে প্রতিস্থাপন করতে পারেন।

যদি ট্যাবস / নতুন লাইনগুলি ডেটাতে এমবেড করা থাকে তবে আপনি এগুলিতে রূপান্তর করতে একটি অনুসন্ধান করতে পারেন এবং এক্সেলের প্রতিস্থাপন করতে পারেন।

সূত্র ব্যবহার করা বা ডেটা পরিবর্তন করা, ডিলিমিটারগুলি বেছে নেওয়ার মূল চাবিকাঠি কখনই এমন অক্ষর ব্যবহার করে না যা প্রকৃত ডেটাতে হতে পারে। এই কারণেই আমি নিম্ন স্তরের আসকি অক্ষরগুলির প্রস্তাব দিই।


-1

আপনার ফলাফল "পরিষ্কার" ফাংশনে রেখে এই ডাবল-কোটগুলি সরিয়ে ফেলাও সম্ভব।

উদাহরণ:

=CLEAN("1"&CHAR(9)&"SOME NOTES FOR LINE 1."&CHAR(9)&"2"&CHAR(9)&"SOME NOTES FOR LINE 2.")

আউটপুট নোটপ্যাড ++ এর মতো অন্যান্য প্রোগ্রামগুলিতে ডাবল-কোট ছাড়াই আটকানো হবে।


এটি একটি সদৃশ উত্তর।
ক্লিন নিউলাইনগুলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.