У меня есть два листа. L12 Database
и Working Sheet
. У меня есть пользовательская форма, которая копирует строки данных с любого листа в диапазон A393
рабочего листа. Однако я понял, что мне нужно только скопировать некоторые данные столбцов этой строки, а не всю строку. Он разделен на 3 диапазона, L12 Database should copy
Columns A:D, I:J, and L:R.
Скопированные данные должны быть paste
в Working Sheet
Columns
A:D,E:F and I:O
. Предыдущее предложение состояло в том, чтобы выполнить цикл, но оно применимо только к двум диапазонам. Поэтому мне понадобится помощь в том, как я могу копировать и вставлять три диапазона в одну пользовательскую форму. Это был код, сделанный пользователем stackoverflow (Извините, я не помню ваше имя), что я и хочу делать. Благодаря!Скопируйте пасту три разных диапазона в пользовательской форме
Private Sub CommandButton1_Click()
Dim rngCopy As Range, rngPaste As Range
Dim wsCopy As Worksheet, wsPaste As Worksheet
Dim LngCounter As Long
If RefEdit1.Value <> "" Then
Set wsCopy = ThisWorkbook.Sheets(Replace(Split(RefEdit1.Value, "!")(0), "'", ""))
Set wsPaste = ThisWorkbook.Sheets("Working Sheet")
For LngCounter = 0 To 1
If LngCounter = 0 Then
Set rngCopy = wsCopy.Range(Split(RefEdit1.Value, "!")(1))
Set rngPaste = wsPaste.Range("A401")
Else
Set rngCopy = wsCopy.Range(Replace(Replace(Split(RefEdit1.Value, "!")(1), "A", "I"), "D", "R"))
Set rngPaste = wsPaste.Range("E401")
End If
If CheckBox1.Value = True Then
wsPaste.Activate
rngPaste.Select
rngCopy.Copy
ActiveSheet.Paste Link:=True
Else
rngCopy.Copy rngPaste
End If
Set rngPaste = Nothing
Set rngCopy = Nothing
Next
Else
MsgBox "Please select Input range"
End If
End Sub
Это был UserForm код, который я сделал ранее:
Private Sub CommandButton1_Click()
Dim rngCopy As Range, rngPaste As Range
Dim wsCopy As Worksheet, wsPaste As Worksheet
If RefEdit1.Value <> "" Then
Set wsCopy = ThisWorkbook.Sheets(Replace(Split(RefEdit1.Value, "!")(0), "'", "")) 'Sheet name of the data selected by user
Set rngCopy = wsCopy.Range(Split(RefEdit1.Value, "!")(1)) 'Range of the data selected by user
Set wsPaste = ThisWorkbook.Sheets("Working Sheet") 'Sheet location where data copied would be pasted
Set rngPaste = wsPaste.Range("A393") 'Range Area where data copied would be pasted in columns A and B of database sheet
If CheckBox1.Value = True Then
wsPaste.Activate
rngPaste.Select
rngCopy.Copy
ActiveSheet.Paste Link:=True 'Activate paste link between info sheet and database sheet
Else
rngCopy.Copy rngPaste
End If
Else
MsgBox "Please select Input range" 'If user did not key in any input, this message wouldp pop up
End If
End Sub
Привет, большое вам спасибо за внимание. Я сейчас пытаюсь решить проблемы, но у меня есть ошибка несоответствия типа на этой строке: Set rngSelected = Range (Replace (RefEdit1.Text, ";", ",")). Области – Niva
Каково фактическое содержимое 'RefEdit1 .Text'? – user3598756
Пользователь выбирает диапазон значений из ячейки. Что-то вроде этого: «Код зарядки»! $ A $ 2: $ B $ 5 – Niva