Kemungkinan masalah terkait dengan jawaban dari "user3616725":
Saya menggunakan Windows 8.1 dan sepertinya ada masalah dengan kode VBA tertaut dari jawaban yang diterima dari "user3616725":
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
Detail:
Menjalankan kode di atas dan menempelkan clipboard ke dalam sel di Excel Saya mendapatkan dua simbol yang terdiri dari kotak dengan tanda tanya di dalamnya, seperti ini: ⍰⍰. Menempelkan ke Notepad bahkan tidak menampilkan apa pun.
Solusi:
Setelah mencari beberapa lama saya menemukan skrip VBA lain dari pengguna "Nepumuk" yang menggunakan API Windows . Inilah kodenya yang akhirnya berhasil untuk saya:
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
Untuk menggunakannya dengan cara yang sama seperti kode VBA pertama dari atas, ubah Sub "Beispiel ()" dari:
Public Sub Beispiel()
Call StringToClipboard("Hallo ...")
End Sub
Untuk:
Sub CopyCellContents()
Call StringToClipboard(ActiveCell.Value)
End Sub
Dan jalankan melalui menu makro Excel seperti yang disarankan dari "user3616725" dari jawaban yang diterima:
Kembali ke Excel, buka Alat> Makro> Makro dan pilih makro yang disebut "CopyCellContents" lalu pilih Opsi dari dialog. Di sini Anda dapat menetapkan makro ke tombol pintas (misalnya seperti Ctrl + c untuk salinan normal) - Saya menggunakan Ctrl + q.
Kemudian, ketika Anda ingin menyalin satu sel ke Notepad / di mana pun, cukup lakukan Ctrl + q (atau apa pun yang Anda pilih) dan kemudian lakukan Ctrl + v atau Edit> Tempel di tujuan yang Anda pilih.
Sunting (21 November 2015):
@ komentar dari "dotctor":
Tidak, ini benar-benar bukan pertanyaan baru! Menurut pendapat saya, ini adalah tambahan yang bagus untuk jawaban yang diterima karena jawaban saya menjawab masalah yang dapat Anda hadapi saat menggunakan kode dari jawaban yang diterima. Jika saya ingin memiliki reputasi lebih, saya akan membuat komentar.
@ komentar dari "Teepeemm":
Ya, Anda benar, jawaban yang diawali dengan judul "Masalah:" menyesatkan. Diubah menjadi: "Kemungkinan masalah terkait dengan jawaban dari" user3616725 ":". Sebagai komentar saya pasti akan menulis jauh lebih kompak.