#excel #vba
#excel #vba
Вопрос:
Я создаю таблицу Excel с большим количеством информации для поддержки проекта. это работает как список всех опций для этого продукта.
проблема заключается в том, чтобы поместить некоторые диапазоны данных в определенные ячейки в SiDAQ sheet из SiDAQ_Template Sheetet. диапазоны могут варьироваться от 1 строки до 51 строки, и они также должны быть вставлены и удалены динамически снова (как занавес, который вы поднимаете и опускаете, зависит от выбора на листе SiDAQ)
я пытался записать некоторые из них, но для меня ничего не имеет смысла.
Sub test()
defining the worksheets used for the copy/paste of templates.
Dim ws1 As Worksheet: Set ws1 = ActiveWorkbook.Sheets("SiDAQ")
Dim ws2 As Worksheet: Set ws2 = ActiveWorkbook.Sheets("SiDAQ_Template")
defining the ranges of the templates, easier naming in the code
With ws2
Dim rng1 As Range: Set rng1 = Range("E2:F2") 'Speed
Dim rng2 As Range: Set rng2 = Range("E4:F4") 'Count
Dim rng3 As Range: Set rng3 = Range("E8:F8") 'EL2202 (1 ms)
Dim rng4 As Range: Set rng4 = Range("E9:F9") 'EL2202 (1 sec)
Dim rng5 As Range: Set rng5 = Range("E10:F10") 'EL2202 (1 hour)
Dim rng6 As Range: Set rng6 = Range("E11:F11") 'PPS
Dim rng7 As Range: Set rng7 = Range("E13:F13") 'I 4…20mA
Dim rng8 As Range: Set rng8 = Range("E16:F16") 'I 0...20mA
Dim rng9 As Range: Set rng9 = Range("E18:F18") 'V ±30V
Dim rng10 As Range: Set rng10 = Range("E19:F19") 'V ±10V
Dim rng11 As Range: Set rng11 = Range("E21:F21") 'V ±5V
Dim rng12 As Range: Set rng12 = Range("E23:F23") 'V ±2.5V
Dim rng13 As Range: Set rng13 = Range("E24:F24") 'V ±1.25V
Dim rng14 As Range: Set rng14 = Range("E25:F25") 'V ±640mV
Dim rng15 As Range: Set rng15 = Range("E26:F26") 'V ±320mV
Dim rng16 As Range: Set rng16 = Range("E27:F27") 'V ±160mV
Dim rng17 As Range: Set rng17 = Range("E28:F28") 'V ±80mV
Dim rng18 As Range: Set rng18 = Range("E29:F29") 'V ±40mV
Dim rng19 As Range: Set rng19 = Range("E30:F30") 'I ±20mA
Dim rng20 As Range: Set rng20 = Range("E31:F31") 'R 2W Ohm
Dim rng21 As Range: Set rng21 = Range("E32:F32") 'R 3W Ohm
Dim rng22 As Range: Set rng22 = Range("E33:F33") 'R 4W Ohm
Dim rng23 As Range: Set rng23 = Range("E34:F34") 'RTD 3W °C
Dim rng24 As Range: Set rng24 = Range("E36:F36") 'RTD 4W °C
Dim rng25 As Range: Set rng25 = Range("E37:F37") 'SG 1/4 3W 350Ohm mV/V
Dim rng26 As Range: Set rng26 = Range("E38:F38") 'SG 1/4 3W 120Ohm mV/V
Dim rng27 As Range: Set rng27 = Range("E39:F39") 'SG 1/2 3W mV/V
Dim rng28 As Range: Set rng28 = Range("E40:F40") 'SG 1/2 5W mV/V
Dim rng29 As Range: Set rng29 = Range("E41:F41") 'SG 1/1 4W mV/V
Dim rng30 As Range: Set rng30 = Range("E42:F42") 'SG 1/1 6W mV/V
Dim rng31 As Range: Set rng31 = Range("E43:F43") 'IEPE
Dim rng32 As Range: Set rng32 = Range("E44:F44") 'Thermocouples
Dim rng33 As Range: Set rng33 = Range("E46:F54") 'Power
Dim rng34 As Range: Set rng34 = Range("E55:F78") 'Corrosion
Dim rng35 As Range: Set rng35 = Range("E103:F104") 'ComNav
Dim rng36 As Range: Set rng36 = Range("E107:F129") 'RisoDau
Dim rng37 As Range: Set rng37 = Range("E153:F160") 'GPS
Dim rng38 As Range: Set rng38 = Range("E169:F178") 'RotorAzimut
Dim rng39 As Range: Set rng39 = Range("E189:F239") 'Camilla Bauer
Dim rng40 As Range: Set rng40 = Range("E291:F298") 'PTP
End With
Application.ScreenUpdating = False 'for quicker operation
For Each Cells In Column(5)
If Cells(Column, 5) = "EL*" Then
Next
Application.ScreenUpdating = True
End Sub
Разные диапазоны зависят от того, есть ли «EL something» в столбце 5 (E)
на листе SiDAQ и, если слово соответствует rngXX в столбце 15 (O), также на листе SiDAQ
затем вставьте диапазоны в ту же строку, что и EL в столбце 5, и столбец 15 в столбце 37 (AK) и ниже, вставляя пустые строки, соответствующие строкам диапазона, вставленного в столбец AK (37)
Комментарии:
1.
Set rng1 = Range("E2:F2")
должно бытьSet rng1 = .Range("E2:F2")
— обратите внимание на точку передRange
— это позволяет применить вашеWith
.2. Кроме того, не используйте
=
для тестирования подстановочные знаки — используйтеLike
.